七种数据类型
number,string,boolean,symbol,undefined,null,object(function,array,object)
number
JavaScript 内部,所有数字都是以64位浮点数形式储存,即使整数也是如此
1+.1 //1.1
1.23e3 //1230
1.23e-1 //0.123
octonary八进制前缀:0O,0o,0(且后面只跟0~7)
hexadecimal十六进制前缀:0X,0x
binary二进制前缀:0B,0b
string
每个字符在 JavaScript 内部都是以16位(即2个字节)的 UTF-16 格式储存。也就是说,JavaScript 的单位字符长度固定为16位长度,即2个字节。
多行字符串表示:
ES6:
let a=`1234
5678`
a.length //9,包含回车
null,undefined
两者区别:
变量未赋值时其值是undefined
(?)存在一个对象,暂不想赋具体值时 ,赋值null;存在一个非对象,暂时不想赋具体值时,赋值undefined
object
object键名永远为string或symbol,不加引号时,键名会自动转为字符串,且键名要符合标识符规范
是无序的键值对
属性读取:
obj.p === obj['p'] //obj[p]里的p不加引号时表示为变量
//使用[]时键名要放在引号里,否则被当成变量(数字除外,且数字必须放在[]里)
常用方法:
delete obj[key] //清楚键和值
key in obj // false "in"返回boolean,key应为字符串
for(let key in obj){obj.hasOwnProperty(key)}
//使用for...in的时候,应该结合使用hasOwnProperty方法,在循环内部判断一下,某个属性是否为对象自身的属性,返回boolean
Object.keys(obj) //['key1','key2',...]
typeof
两个特殊点:
typeof f(){} //'function'
typeof null //'object'
易错
网友评论