JS杂记

1、Undefined 与 Null 的区别

Undefined 与 null 的值相等,但类型不相等。在js中,undefined表示没有值的变量。null是“nothing”,它被看做不存在的事物,但它是一个空对象

2、不要把字符串创建为对象

字符串可以是对象。通常,js字符串是原始值,通过字面方式创建,但是也可以通过new定义为对象,但是不要把字符串创建为对象。它会拖慢执行速度。new关键字使代码复杂化,也可能产生一些意想不到的结果。

相等==运算符需要值相等

=== 运算符需要类型和值同时相等

甚至更糟,对象无法比较。

var x = new String("Bill"); var y = new String("Bill");// (x == y) 为 false,因为 x 和 y 是不同的对象

var x = new String("Bill"); var y = new String("Bill");// (x === y) 为 false,因为 x 和 y 是不同的对象

3、查找/检索字符串中的字符串

1)查找

indexOf() 方法返回字符串中指定文本首次出现的索引(位置):

lastIndexOf() 方法返回指定文本在字符串中最后一次出现的索引:

如果未找到文本, indexOf() 和 lastIndexOf() 均返回 -1

2)检索

search() 方法搜索特定值的字符串,并返回匹配的位置。

//eg:举例

var str = "The full name of China is the People's Republic of China.";

var pos = str.search("locate");

3)两种方法,indexOf() 与 search(),是相等的。但是也有区别。

区别在于:

search() 方法无法设置第二个开始位置参数。

indexOf() 方法无法设置更强大的搜索值(正则表达式)。

4、提取部分字符串

有三种提取部分字符串的方法

1)slice(startend)

2)substring(startend)

3)substr(startlength)

注意:slice() 可以接受负的索引,substring不可以接受负的索引。substr第二个参数是长度,它也可以接受负的索引。

5、替换字符串内容

replace() 只替换首个匹配,对大小写敏感。若让它不敏感,要使用/替换之前的/i

str = "Please visit Microsoft!";

var n = str.replace(/MICROSOFT/i, "W3School");

替换所有的:用/....../g

str = "Please visit Microsoft and Microsoft!";

var n = str.replace(/Microsoft/g, "W3School");

6、Javascript数值始终是64位浮点数

7、NaN

NaN属于js保留词,指示某个数不是合法数。

注意:数字字符串做算数运算,得到的结果是一个数值或字符串,不会是NaN。

判断是否为NaN有个方法:isNaN()

typeof  NaN 返回:number

8、infinity

infinity(或-Infinity)是js在计算数时可能超过最大可能数范围时返回的值。typeof(infinity)

infinity极大值,-infinity极小值

你可能感兴趣的:(JS杂记)