此文仅为笔记,代码来源自网络
网络技术文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript
1、使用||和&&简化语句,其中||:首先检查左边的值,如果能将该值转换为true,则返回左边的值,不执行右边代码,否则返回右边的值;&&:首先检查左边的值,如果能将该值转换为false,则返回左边的值,不执行右边代码;否则返回右边的值,例如:typeof cb == "function" && cb('a')
2、Object.defineProperty(obj, prop, descriptor)方法接收三个参数:需要添加或修改属性的对象,属性名称,属性描述options{configurable:false;enumerable:false;value:undefined;writable;get;set}。
3、use strict:严格模式
4、instanceof
运算符用来测试一个对象在其原型链中是否存在一个构造函数的 prototype
属性,object instanceof constructor
5、声明:var:声明一个变量 const 声明创建一个只读的常量。常量不可以通过赋值改变其值,也不可以在脚本运行时重新声明。它必须被初始化为某个值。这不意味着常量指向的值不可变,而是变量标识符的值只能赋值一次,对象属性是不受保护的,let
声明了一个块级域的局部变量,并且可以给它一个初始化值。
6、undefined
值在布尔类型环境中会被当作 false,在数值类环境中会被转换为
NaN
null值在布尔类型环境中会被当作 false,在数值类环境中会被转换为0
在涉及加法运算符(+)的数字和字符串表达式中,JavaScript 会把数字值转换为字符串。
字符串转换为数字:使用parseInt()
和parseFloat()或使用单目加法运算(+"1.1")
7、变量的作用域:语句块中var声明的变量将成为语句块所在代码段的局部变量
变量声明提升:你可以引用稍后声明的变量而不会引发异常;但是在使用或引用某个变量之后进行声明和初始化操作,这个被提升的引用仍将得到 undefined 值。
8、函数表达式:
表达式定义的函数,称为匿名函数。匿名函数没有函数提升
9、在条件表达式中最好不要使用“=”来判断条件是否相等,如if(x=y)应该写为:if((x=y))
False等效值:false(是指布尔值,不是布尔对象),undefined,null,0,NaN,空字符串("")
10、标签语句:lable:statement,
label
的值可以是js的任何非保留字标识符。 用label 标识的语句可以是任何语句。
11、闭包:当内部函数以某一种方式被任何一个外部函数作用域访问时,一个闭包就产生了,注意闭包中的this
12、this指代
什么完全取决于函数在何处被调用,而不是在何处被定义。
13、arguments对象:函数的实际参数会被保存在一个类似数组的arguments对象中,从0开始
14、解构:语法是一个能从数组或对象对应的数组结构或对象字面量里提取数据的 Javascript 表达式。
15、