2016.06.13廖雪峰JS__学习笔记(快速入门部分)__p1

来源:互联网 发布:为什么淘宝貂皮便宜 编辑:程序博客网 时间:2024/05/12 02:41

1

==比较,它会自动转换数据类型再比较,很多时候,会得到非常诡异的结果;

===比较,它不会自动转换数据类型,如果数据类型不一致,返回false,如果一致,再比较

由于JavaScript这个设计缺陷,不要使用==比较,始终坚持使用===比较。

2

JavaScript不区分整数和浮点数,统一用Number表示

3

NaN这个特殊的Number与所有其他值都不相等,包括它自己

4

''表示长度为0的字符串,而null表示“空”。

5

JavaScript的设计者希望用null表示一个空的值,而undefined表示值未定义。事实证明,这并没有什么卵用,区分两者的意义不大。大多数情况下,我们都应该用null

6

JavaScript的数组可以包括任意数据类型

7

同一个变量可以反复赋值,而且可以是不同类型的变量,但是要注意只能用var申明一次.

var a = 123; // a的值是整数123

a = 'ABC'; // a变为字符串

这种变量本身类型不固定的语言称之为动态语言

8

如果一个变量没有通过var申明就被使用,那么该变量就自动被申明为全局变量:

9

使用var申明的变量则不是全局变量,它的范围被限制在该变量被申明的函数体内(函数的概念将稍后讲解),同名变量在不同的函数体内互不冲突。

10

在strict模式下运行的JavaScript代码,强制通过var申明变量,未使用var申明变量就使用的,将导致运行错误。

启用strict模式的方法是在JavaScript代码的第一行写上:

'use strict';

11

需要特别注意的是,字符串是不可变的,如果对字符串的某个索引赋值,不会有任何错误,但是,也没有任何效果

12

slice()就是对应Stringsubstring()版本,它截取Array的部分元素,然后返回一个新的Array

13

push()Array的末尾添加若干元素,pop()则把Array的最后一个元素删除掉:

14

如果要往Array的头部添加若干元素,使用unshift()方法,shift()方法则把Array的第一个元素删掉:

15

sort()可以对当前Array进行排序,它会直接修改当前Array的元素位置,直接调用时,按照默认顺序排序:

16

reverse()把整个Array的元素给掉个个,也就是反转:

17

splice()方法是修改Array万能方法,它可以从指定的索引开始删除若干元素,然后再从该位置添加若干元素:

18

concat()方法把当前的Array和另一个Array连接起来,并返回一个新的Array

19

请注意concat()方法并没有修改当前Array,而是返回了一个新的Array

实际上,concat()方法可以接收任意个元素和Array,并且自动把Array拆开,然后全部添加到新的Array里:

var arr= ['A','B','C'];

arr.concat(1,2, [3,4]);// ['A', 'B', 'C', 1, 2, 3, 4]

20

join()方法是一个非常实用的方法,它把当前Array的每个元素都用指定的字符串连接起来,然后返回连接后的字符串:

var arr= ['A','B','C',1,2,3];

arr.join('-');// 'A-B-C-1-2-3'

如果Array的元素不是字符串,将自动转换为字符串后再连接。

21

由于JavaScript的对象是动态类型,你可以自由地给一个对象添加或删除属性:

22

如果in判断一个属性存在,这个属性不一定是xiaoming的,它可能是xiaoming继承得到的:

23

Map是一组键值对的结构,具有极快的查找速度

24

SetMap类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在Set中,没有重复的key

25

MapSetES6标准新增的数据类型,请根据浏览器的支持情况决定是否要使用。

26

遍历Array可以采用下标循环,遍历MapSet就无法使用下标。为了统一集合类型,ES6标准引入了新的iterable类型,ArrayMapSet都属于iterable类型。

27

具有iterable类型的集合可以通过新的for ... of循环来遍历。

28

更好的方式是直接使用iterable内置的forEach方法,它接收一个函数,每次迭代就自动回调该函数。以Array为例:

var a =['A','B','C'];

a.forEach(function (element, index, array) {

    // element:指向当前元素的值

    // index:指向当前索引

    // array:指向Array对象本身

    alert(element);

});

注意forEach()方法是ES5.1标准引入的,你需要测试浏览器是否支持。

SetArray类似,但Set没有索引,因此回调函数的前两个参数都是元素本身:

var s =new Set(['A','B','C']);

s.forEach(function (element, sameElement, set) {

    alert(element);

});

Map的回调函数参数依次为valuekeymap本身:

var m =new Map([[1,'x'], [2,'y'], [3,'z']]);

m.forEach(function (value, key, map) {

    alert(value);

});

如果对某些参数不感兴趣,由于JavaScript的函数调用不要求参数必须一致,因此可以忽略它们。例如,只需要获得Arrayelement

var a =['A','B','C'];

a.forEach(function (element) {

    alert(element);

});

 

1 0
原创粉丝点击