javascript 中的数据类型
什么是数据类型?
人以类聚物以群分。
为什么要对数据分类?
为了合理分配内存空间,达到节约内存目的。
`
数据类型的分类
javascript中类型分两大类:基础数据类型、引用类型
- 5种基本数据类型:
String 字符串类型
Number 数字类型
Boolean 布尔类型
undefined 未定义类型
null 空类型
Number : 所有的数字( int, float)、 特殊符号 NAN(Not a number)
整数(int)可以使用以下4种表示方式:
十进制: 日常生活实用的数字。(也是最最最常用的方式)
二进制: 以0或者1组成的数字
八进制: 以0开头的数字
十六进制: 以0x开头的数字小数(float)
特殊值:NaN(计算错误,类型转换失败):不是明确的数字,但是它是Number类型
Infinity(除数为0)
undefine:表示定义了变量,但是没有给变量赋值 null:表示一个空对象 ,可以通过给一个变量赋值nulll值来清除变量的内容
注意:null使用typeof 返回的数据类型是object,是一个特例,是一个远古时期的一个bug
面试题:null和undefined的比较
相同点:
①null,undefined均表示没有值
不同点:
undefined:
①代表一个变量定义了,但是没有赋值,就使用,那么变量的默认值就是undefined。
null:
①代表一个变量如果存储的值是引用类型,且目前对象还未创建,那么就可以设置为null,
②另外一个情况:如果一个函数有返回值,但是最终没有数据返回出来,则也会返回null
英语小课堂
caught: 捕获
uncaught: 未捕获
Syntax:语法
SyntaxError:语法错误
expected:期望的,期待的
unexpected:意外(不期望的)
identity:身份,个性,特性
identifier:识别码
检测数据类型使用typeof
重点:强制类型转换
parseInt:(将其他类型转换为number整数):
string—>number
① 字符串中的值首字符必须是数字,转换后之后得到具体值,否则得到NAN
②只转换首字符开始的连续数字
③除了字符串,其他类型转换成number都得到NANparseFloat:(将其他类型转换为number类型的小数)
①②③和parInt一样
④如果小数后面的值是有效值,转换后就保留,否则就删除Number(): 讲其他类型转化为number类型
注意:
string—>number
①只能是纯数字的字符串,才能得到具体的值,其他的都是得到NAN
②布尔通过它转换成number,true = 1, false = 0
③ undefined通过它转换成number:NAN
④Null通过它转换成number: 0Boolean():将其他类型转换为布尔类型
注意:
除了数字 0 空字符串“” ‘’ undefined NaN null 他们得到false,其他的都是true
运算符:
++:自身加1
前置++: ++a 先自增再运算
后置++: a++ 先运算再自增
重点: 但是别犯糊涂 这里说到的运算是指和的变量参与的运算,而不是自己的运算
>var a = 3
> ++a
> console.log(a) //4
>var a = 3
> a++
> console.log(a)// 4
>var a = 12;
> c = ++a + 3
> console.log(a , c)// a = 13, c = 16
>var a = 12;
> c = a++ + 3
> console.log(a , c)// a = 13, c = 15
比较运算符:得到的结果为true or false
== != > >= < <=
=== 全等于
!== 不全等于
= 表示赋值
== 只比较值大小,不比较数据类型
=== 既比较值大小,还比较数据类型
!= 不等于)和 == 相反
!== 不全等于)和 === 相反 ```
逻辑运算符:
&&(与) 遇到false就返回
a&&b, 如果a为true,直接返回b,而不管b为true或者false
如果a为false那么直接返回a eg:
1.var a = 1 && 2 && 3; //3
2.var b = 0 && 1 && 2; //0
3.var c = 1 && 0 && 2; //0
||(或)遇到true就返回
a||b,如果a为false,直接返回b,而不管b为true or false
如果a为true, 直接返回a,而不会继续往下执行
1.var a = 0 || 1 || 2; //1
2.var b = 1 || 0 || 3; //1
!(非) 取反
判断语句
switch…case 判断数值并且判断数值的数值类型 也就是 === 全等的判断条件
什么是函数?
函数就是我们封装方法的一个容器,也可以叫做一个功能模块。
为什么要使用函数
1.减少代码德冗余度
2.方便后期对代码的维护
函数的定义方式
第一种方式:函数声明式
function 函数名 () {
函数体(被封装的代码块)
}
第二种方式:函数表达式
var 变量 = function(){
}
注意:
1.function(){} 匿名函数(没有名称的函数)
2.变量名相当于函数名
那么这两个函数定义的方式有什么区别呢?
函数声明式:如果使用函数声明式,定义好的函数会自动提升,提升到script标签开始的下面
函数表达式,不会提升,如果在变量的上面调用该变量,会报错。(es6中所提及的)