标签:java undefined 字符串 join ons 定义 字符 str fine
toString
,可以变相实现多行字符串:var multiline = function (fn) {
var arr = fn.toString().split(‘\n’);
return arr.slice(1, arr.length - 1).join(‘\n’);
};
function f() {/*
这是一个
多行注释
*/}
multiline(f);
// “ 这是一个
// 多行注释”
var a = 1;
var x = function () {
console.log(a);
};
function f() {
var a = 2;
x();
}
f() // 1
//很容易犯错的一点是,如果函数A调用函数B,却没考虑到函数B不会引用函数A的内部变量。
var B = function () {
console.log(a);
};
function A(f) {
var a = 2;
f();
}
A(B)
// ReferenceError: a is not defined
eval
配合eval
内定义的变量:(function f() {
‘use strict’;
eval(‘var foo = 123’);
console.log(foo); // ReferenceError: foo is not defined
})()
eval
可以读写外部作用域的变量的值:(function f() {
‘use strict’;
var foo = 1;
eval(‘foo = 2’);
console.log(foo); // 2
})()
eval
的别名不影响代码优化,JavaScript 的标准规定,凡是使用别名执行eval
,eval
内部一律是全局作用域://下面这些形式都是eval的别名调用,作用域都是全局作用域。
eval.call(null, ‘…’)
window.eval(‘…’)
(1, eval)(‘…’)
(eval, eval)(‘…’)
标签:java undefined 字符串 join ons 定义 字符 str fine
原文地址:https://www.cnblogs.com/endymion/p/9192997.html