一、基本数据类型(值类型)
1、数字
Number 整数 小数 NaN(not a number)
Number 转化类型的规律 从左到右查看只要碰到非数字 结果就是NaN
parseInt 过滤出整数 规律 从左向右查看 只要碰到非数字 及停止转换,若第一个就是非数字结果是NaN
console.log(parseInt('12q12315')) ==>//12
console.log(parseInt('q12315')) ==>// NaN
console.log(parseInt('12.315')) ==>//12
parseFloat() 对小数点的处理
console.log(parseFloat('12.3w')) ==>//12.3
Number('') //0
Number([]) //0
Number ([12,23]) //NaN 先把引用数字类型转换为字符串'12,13' '12,13'转换为NaN
Number(null)//0
Number(undefind)//NaN
Number(false)//0
Number(true)//1
Number({})//NaN
2. string
//字符串拼接方式一
var a = "hello";
var b = "world";
var c = a +' '+ b; ==> //'hello world'
//字符串拼接方式二 : 反引号
在反引号中 拼接变量 通过使用${变量名} 的方式 支持换行
var a = 666;
var str = `hello
hi额hi嗯好IE
${a} world`
3. boolean
boolean 布尔类型 只有两个值 true 、false
boolean() 把其他数据类型转换为布尔类型
0 NaN '' null undefined 只有这个五个值转换为布尔结果是false 其他都是true
**!是用来取反的,先用Boolean转成布尔类型,然后在去取反**
4. null undefined
null 空指针,通过ID获取元素时会有
undefined未定义,一个对象中欧没有对应的属性
一个函数执行,不写return(或者写了return,但是后边没东西),那么函数的执行结果就是undefined
形参为负值是的默认值是undefined
二、引用数据类型
1、对象
{属性名:属性值,属性名2:属性值2}
属性名 可以使单独的数字 但不能是 数字加+字母的形式 属性名的引号可以省略的
堆内存 存储的引用数字类型
JS 读取这段代码的时候 发现是一普通的对象 就会去堆内存中开一个新的空间
然后把这对象中的键值对(属性名:属性值),挨个存储到 这个空间 然后把空间地址赋给 对应的变量xxx
当我们使用xxx 这个变量时 浏览器发现它是一个地址,会自动把这个地址的内容返回当前使用的地方
!!!调用地址中属性名的方式 console.log(per2.name)
!!!调用地址中属性名对应的属性置的方式 console.log(per2['name'])
!!!如果属性名是数字 查找属性名对应的属性值得的方式 console.log(per2[数字])
三、引用数据类型和基本数据类型的区别
基本数据类型:Number、String、Boolean、Null、Undefined、Symbol(ES6)
这些类型可以直接操作保存在变量中的实际值。基本数据类型是指存放在栈中的简单数据段,数据大小确定,
内存空间大小可以分配,它们是直接按值存放的,所以可以直接按值访问
引用数据类型:Object(在JS中除了基本数据类型以外的都是对象,数据是对象 函数是对象,正则表达式是对象)
都存放在堆内存中
var a = [1,2,3,4,5];
var b = a;//传址 ,对象中传给变量的数据是引用类型的,会存储在堆中;
var c = a[0];//传值,把对象中的属性/数组中的数组项赋值给变量 存储在栈内存中
;改变栈中的数据不会影响堆中的数据
alert(b);//1,2,3,4,5
alert(c);//1
//改变数值
b[4] = 6;
c = 7;
alert(a[4]);//6
alert(a[0]);//1