JavaScript
- 严格区分大小写;
- 数据类型:
Number
:不区分整数与浮点数;- 字符串:
- 布尔值:
- 相等运算符:
==
:会自动转换数据类型再比较;===
:不会自动转换数据类型,数据类型不一致则返回false;NaN
,表示Not a Number
与所有其他值都不相等,包括自己;
null
:表示一个空的值,与0和空字符串''
不同,0是一个数值,''
表示长度为0的字符串,而null
表示"空";undefined
:表示"未定义";- 数组定义方式, 索引起始值为0:
new Array(1, 2, 3)
;- 直接使用
[]
,[1, 2, 4]
;
- 对象都是一组由键-值组成的无序集合,键都是字符串类型,如果键中含特殊字符,就必须用''括起来,访问时用
['xxx']
方式,值可以是任意数据类型,获取对象属性方式:对象变量.属性名; - 多行字符串:用反引号`...`表示;
- 模版字符串:自动替换字符串中变量,
message = 'hello, ${name}, your age is ${age}'
; - 字符串是不可变的,对字符串的某个索引赋值既不会引起错误,也不会改变字符串;
- 直接给
Array
的length
赋新值会导致Array
大小的变化,可以通过索引改变对应元素的值,索引超过范围时同样引起Array
大小的变化; push()
向Array末尾添加若干元素,pop()
把最后一个元素删除;unshift()
向Array
头部添加若干元素,shift()
删除第一个元素;splice()
:从指定索引开始删除若干元素,然后再从该位置添加若干元素;concat()
:将两个Array连接起来,返回一个新的Array
,join()
将Array
的每个元素都用指定字符串连接起来,再返回连接后的字符串;- 判断一个属性是否为对象自身所有,而不是继承得到,可用
hasOwnProperty()
方法; JS
中把null
、undefined
、0
、NaN
和空字符串''视为false
,其他都视为true
;Set
是一组key
的集合,不存储value
,由于key
不能重复,所以Set
中没有重复的key
,常用方法:add
、delete
;Map
是一组键值对的结构,具有极快的查找速度,初始化时需要一个二维数组,或者直接初始化一个空Map
,常用方法:set
、has
、delete
、get
;- 遍历
Array
可用下标循环,遍历Map
和Set
则无法使用下标,引入inerable
类型(Array
、Map
、Set
都属于)通过for...of
循环来遍历; for...in
遍历的是对象的属性名称,for...of
循环的是集合本身的元素,更好的方式是使用内置的forEach
方法,接受一个函数,每次迭代自动回调函数;let
代替var
可以申明一个块级作用域的变量;- 对数组元素进行解析赋值时,多个变量要用
[...]
括起来,eg:let [x, [y, z]] = ['k', ['cunyu', 'chuzihang']]
; - 指定函数的this指向哪个对象可用函数本身的
apply
方法,接受两个参数,第一个是需要绑定的this变量,第二个是Array
,表示参数本身的参数; apply()
把参数打包成Array
再传入,call()
把参数顺序传入;filter
用于把Array
的某些元素过滤调,然后返回剩下的元素;- 自带
sort
函数是按照ASCII
的大小比较的; - 返回闭包时,返回函数不要引用任何循环变量或者后续会发生变化的变量;
箭头函数,相当于匿名函数,含多个参数时,要用
()
括起来;欢迎关注微信公众号:村雨1943;创作不易,未经同意,转载请注明出处~