Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
var thing = 'world!';
['Hello ', thing].join("");
String.prototype.format = function() {
var i = -1, args = arguments;
return this.replace(/#\{(.*?)\}/g, function(one, two) {
return (typeof args[0] == 'object')?args[0][two]:args[++i];
});
}
var thing = 'world!';
console.log(
'hello #{1} - #{2}'.format(thing, 'two!'),
'hello #{wrd} - #{2}'.format({'wrd': thing, '2': 'two!'})
);
String.prototype.format = function() {
var i = 0, args = arguments, regular = /#\{(.*?)\}/g, func = function(one, two) {
return (typeof args[0] == 'object')?args[0][two]:args[i++];
}
return this.replace(regular, func);
}
String.prototype.format2 = function() {
var i = 0
, k = 0
, last_k = 0
, type = typeof arguments[0] == 'object'
, len = this.length
, open = false
, ret = '';
for(;k < len;k++) {
if(this[k] == '#' && this[k+1] != undefined && this[k+1] == '{') {
last_k = open = k += 2;
}
else if(open && this[k] == '}') {
ret += type ? arguments[0][this.substring(last_k, k)] : arguments[i++];
open = false;
}
else if(!open) {
ret += this[k];
}
}
return ret;
}
// https://github.com/lampaa/JSTF
function RunTest(a,b,c){var d=console;d.time(c);for(var i=0;i<b;i++){a(i)}d.timeEnd(c)}
var thing = 'world!';
RunTest(function(cycleNum) {
'hello #{1} - #{2}'.format(thing, 'two!');
'hello #{wrd} - #{2}'.format({'wrd': thing, '2': 'two!'});
}, 400000, '1');
RunTest(function(cycleNum) {
'hello #{1} - #{2}'.format2(thing, 'two!');
'hello #{wrd} - #{2}'.format2({'wrd': thing, '2': 'two!'});
}, 400000, '2');
1: 4237.000ms
2: 3662.000ms
Совершенно случайно я превратился из питониста в JS-разработчика
«hello, #{document.cookie}»
<p>How are you @model.name? Today is a sunny day on the planet Gunsmoke.</p>
<ul class="@(model.active ? 'highlight' : '')">
@model.forEach(function(m){
<li>m.name</li>
})
</ul>
;;var a = 9;;;Пишите код, как хотите. Мне нет ни малейшего дела.
..."'+str+'"'<a href="'+url+'" class="btn btn-'+button_type+'" rel="goto-'+target+'">'+link_text+'</a>'"<a href='#{url}' class='btn btn-#{button_type}' rel='goto-#{target}'>#{link_text}</a>"'test #{foo} and #{bar}'.replace(/#{(\w+)}/g, function(s,m) {return {foo:42, bar:43}[m]});
// Plain one
return "Hello, %1".arg("world!");
// Complicated one
return "Hello, #{world}".arg({'world' : 'world!'});
'<div class="input-append"><input type="text" name="username" '+ 'id="signup_username" placeholder="'+placeholder+'"><input '+ 'type="hidden" name="password" value="'+generated+'"><button '+ ...
str = "FFFFFFFFFFFF\
FFFFFFFFFFFFUUUU\
UUUUUUUUuuuuuuuu"
Строковая интерполяция. Сказка-быль