1.阮一峰没讲的 2.阮一峰没讲清楚的 3.阮一峰讲的一般人听不明白
JavaScript有七种数据类型: 1.数值(number)类型
2.字符串(string)类型 3.符号(symbol)类型 4.布尔(boolean)类型 5.空(null)类型 6.未定义(underfined)类型 7.对象(object)类型 array,function同属于对象类型
number数值类型: 十进制的表示方法: 1; .1表示0.1 ;123=1.23e2 二进制表示的方法:0b11 表示为3 八进制表示方法:以0开头,小于8的数字 十六进制表示方法:0x开头,0-f(F) 使用JS存储数字的时候最好使用字符串,慎用0开头的数字。因为不小心可能转换成为八进制的数字
string字符类型: 字符串的表示方法:"你好",'你好'
' ' '表示为单引号'为转义符 '\n'表示为空格 '\t'表示为(tab)制表符 '\'表示为\符号 上述length都为1 (两种方法)多行字符串:
var s= ' 12345 \
67890 \ //坑人语法
12345 '
复制代码
var s = "123456+
789012+ //好读的语法
123456"
复制代码
注意:慎用第一种,主要要第二种 第一种\后面不能有空格,一但有空格会出错
es6之后适应多行有出现了一种新的语法,就是在以开头
结束,其中第二行以后的字符应该与var对齐,否则就会出现错误(length长度不一样)
var s = `123456
7890123
123456`
复制代码
注意:单引号和双引号应该是成对出现的。''(空)","(空格)" 空字符串和空格字符串不同,空字符串的长度为0,空格字符串的长度为1
boolean布尔类型: 布尔有两个值:false和true。凡是满足结果为false为true我们都可以说这种类型为布尔类型。 学会判断a&&b和a||b的运算
null空类型: 值只有一个,为null。表示什么也没有 underfined未定义类型: 值也是只有一个,underfined,也表示什么都没有 null和underfined具体区别? 1.变量没有值时,选择使用underfined 2.如果想有一个对象,现在还不想赋值,推荐使用null 如果有一个非对象,推荐初始化为underfined。 所以,一般null用于空对象,underfined用于非空对象
上述number,string,boolean,null,underfined,symbol都是简单对象,下面说的object为复杂数据类型,同时复杂类型是有简单类型所组成的。
object对象类型: 简单数据类型表示:
var name = "xiaoming"
var age = 12
var gender = "male"
复制代码
复杂数据(object)类型:
var person = {
'name' : 'xiaoming',
'age' :18,
'gender' : 'male'
}
复制代码
对象的使用: 正确使用方法:person['name'] 错误使用方法:person[name] 因为一点在对象的前面声明 var name = xiaohong,后面就等价于person[xiaohong]而这样写明显是错误的
'':'小明',
9a:'xiaoming',
"9a":"小明"
"a b":"小明"
//上面三种结果,很显然第一,三,四两种可以。第三种如果key没有"",要严格遵守标识符命名规则。
复制代码
如果person['name']满足标识符原则,那么可以使用person.name属性。其中, 这是一个特例。 delete person['name']与person.name = underfined的区别? 使用delete person['name']以后,person['name']=underfined,"name" in person则显示false。 相反,使用person['name']=underfined属性,只是初始化name的值,而使用"name" in person则显示false
for(var key in person){
console.log(person[key])
}
// xiaoming
// 123
for(var in person){
console.log(key,person[key])
}
// name xiaoming
// age 123
复制代码
介绍一下typeof xxx检测数据类型,一般七种类型结果用“ ”来表示,但是JS中也有两个bug typeof null类型值返回值为object typeof function类型返回值为function //很显然,七种类型值中并没有function类型,所以这两种需要单独记忆!