基本类型
- Number
- 整数和小数:1 1.1 .1
- 科学记数法:1.23e2
- 二进制:0b11
- 八进制:011(后来 ES5 添加了 0o11 语法)
- 十六进制:0x11
- String
- 空字符串:''
- 多行字符串:
var s = '12345' +
'67890' // 无回车符号
或
var s = `12345
67890` // 含回车符号
- Boolean
- true
- false
- Symbol
- Undefined
- undefined
- Null
- null
undefined和null的区别?
1.变量没有赋值==>undefined
2.有一个对象object,现在不想赋值,==>null(推荐)
3.有一个非对象,不想赋值==>undefined
以上基本是前端惯例
复杂类型
- Object(有简单类型组成)
易错点
- delete ,in
var person={ name:'zhx',age:'18'}
delete person['name'] //true
person.name //undefined
'name' in person //false
/**************************/
person['name']=undefined
person.name //undefined
'name' in person //true
- for...in (遍历属性)
var person={....}
for(var key in person){
console.log(key)
}
- typeof
记住- typeof null //object
- typeof fn // function
- 想知道对象有哪些key
Object.keys(obj)
- for...in
它遍历的是对象所有可遍历(enumerable)的属性,会跳过不可遍历的属性。
它不仅遍历对象自身的属性,还遍历继承的属性。
-
当遇到乱码邮箱时
- 解码atob():将解码通过base-64编码的字符串数据
- 编码btoa():从二进制数据的字符串创建一个base-64编码的ASCII字符串
JS引擎不能自动识别编码大于0xFFFF的unicode字符
"".length 为 2 是因为 "" 是两个字符
我想知道a是否声明,用什么代码
A. if(a){...}
B. if(window['a']){}
C. if(window.a){}
D if('a' in window){}
选择 D
- JavaScript内部是以16位(二个字节)utf-16存储对的