JavaScript 知识点
根据具体需要,JavaScript 按照如下规则将变量转换成布尔类型:
false、0、空字符串("")、NaN、null 和 undefined 被转换为 false
所有其他值被转换为 true
在 JavaScript 中声明一个新变量的方法是使用关键字 let 、const 和 var: 1. let 语句声明一个块级作用域的本地变量(没有变量提升)
**polyfills实现原理:**使用var声明这个变量,在es6之前js是没有块级作用域只有函数作用域,那么它的作用域是整个函数,并且是不同于原来的变量名,在同一块内&&出现在声明代码之后&&访问此变量值的地方会被替换成新的变量名,这样便限制了变量的作用域在块内,如果块内有异步函数访问这个变量,便会通过函数参数把变量传递给异步函数
const 允许声明一个不可变的常量(块级作用域,没有变量提升)
polyfills实现原理:与let不同的是const的值不能变化,那么内部实现与let不同的是对变量的重新赋值操作不会把变量名替换为新的变量名,这样便限制了对变量的改变
var 是最常见的声明变量的关键字(变量提升)
当使用+运算符连接字符串
"hello" + " world"; // hello world
"3" + 4 + 5; // 345
3 + 4 + "5"; // 75
逻辑运算符
expr1 && expr2
当expr1被转换为false时,返回expr1;否则返回expr2expr1 || expr2
当expr1被转换为true时,返回expr1;否则返回expr2
关键字 this。当使用在函数中时,this 指代当前的对象,也就是调用了函数的对象。如果在一个对象上使用点或者方括号来访问属性或方法,这个对象就成了 this。如果并没有使用“点”运算符调用某个对象,那么 this 将指向全局对象(global object)。
new 方法的简单实现:
function trivialNew(constructor, ...args) { var o = {}; // 创建一个对象 constructor.apply(o, args); return o; } 以下两种方式等效 var bill = trivialNew(Person, "William", "Orange"); var bill = new Person("William", "Orange");
计算属性名:
this.setState({ }); 相当于如下ES5语法 var partialState = {}; partialState[name] = value; this.setState(partialState);
Last updated
Was this helpful?