js常见知识点(2)

2.1模式匹配

/^HTML/        -->匹配以HTML开头的字符串  
/[1-9][0-9]*/
/javascript/i

 字符串具有可以接受RegExp的方法

var text = 'testing:1,2,3'
var pattern = /d+/g
pattern.test(text)
text.search(pattern)
text.match(pattern)
text.replace(pattern,'#')
text.split(/D+/)        -->用非数字截取字符串    
text.split(/d+/)        -->用数字截取字符串

2.2布尔值
false的布尔值有

undefined
null
0
-0
NaN
""

true的布尔值有

所有其他值
注意:Infinity -Infinity是true

2.3null和undefined

null和undefined都是自有类型的唯一成员
typeof(null)             -->'object'
typeof(undefined)    -->'undefined'

等于运算符"=="认为两者是相等的,要使用全等运算符"==="来区分它们。
两者都不包含任何属性和方法,也就是不能用'[]','.'来存取这两个值的成员或方法。

2.4全局对象

var global = this
在客户端JavaScript中window可以替代this

2.5包装对象

var s = "test",n = 1,b = true
var S = new String(s)
var N = new Number(n)
var B = new Number(b)
typeof(s)     -->"string"    
typeof(n)     -->"number"
typeof(b)     -->"boolean"
typeof(S)     -->"object"包装对象的类型都是object
"=="等于运算符将原始值和其包装对象视为相等,
"==="全等运算符将他们视为不等

2.6 不可变的原始值和可变对象的引用

引用类型(对象,数组)和基本类型(字符,数值等)

var a = []
var b = a
b[0] = 1
a[0]           -->1
a === b        -->true

对象的值都是引用,对象(或数组)的比较均是引用的比较:当且仅当他们的引用基于一个对象时,他们才相等。

如果想得到一个数组或对象的副本,则必需显式的复制对象的每个属性和数组的每个元素。

var a = [1,2,3,4]
var b = []
for(var i = 0;i < 4;i++){
    b[i] = a[i]   
}
b              -->[1,2,3,4]
b == a         -->false
b === a        -->false

 2.7类型转换

转换值
字符串 数字 布尔值 对象

undefined

null

"undefined"

"null"

NaN

0

 false

false

throw TypeError

throw TypeError

true

false

 "true"

"false"

 1

0

 

 new Boolean(true)

new Boolean(false)

""(空字符串)

"1.2"(非空,数字字符串)

"one"(非空,非数字字符串)

 

0

1.2

NaN

 false

true

true

new String("")

new String("1.2")

new String("one")

0

-0

NaN

Infinity

-Infinity

1(非零数字)

"0"

"0"

"NaN"

"Infinity"

"-Infinity"

"1"

 

false

false

false

true

true

true

new  Number(0)

new Number(-0)

new Number(NaN)

new Number(Infinity)

new Number(-Infinity)

new Number(1)

{}(对象)

[](空数组)

[9](一个数字元素)

['a'](其他数组)

function(){}(任意函数)

"[object Object]"

""

"9"

使用join()方法

javascript源码字符串

NaN

0

9

NaN

NaN

true

true

true

true

true

 
原文地址:https://www.cnblogs.com/zhoulixue/p/6430163.html