数据类型概述 严格检查模式 数据类型转换
数据类型概述
number
js不区分小数和整数
123//整数
123.9//浮点数
1.23e3//科学计数法
-90//负数
NaN//not a number
Infinity//表示无限大
字符串
'abc' "abc"
布尔值
true false
逻辑运算
与&& 或|| 非!
比较运算
=//赋值
==//等于(类型不一样,结果不一样,也会为true)
===//绝对等于(类型一样,结果一样,才会为true),一般都用这个
坚持不要用==比较
注意:
-
NaN与所有的数值都不相等,包括自己。只能通过一个方法isNaN(NaN)来判断这个数是否是NaN
-
注意精度问题:
console.log((1/3)===(1-2/3))返回结果为false。 所以尽量避免使用浮点数进行运算
可以用绝对值来计算,判断两者相减的值是否小于0.00000001,若是,则就认为是相等
console.log(Math.abs(1/3-(1-2/3))<0.00000001)
//返回值为true
null和undefined
null:空
iundefined:未定义
数组
var arr=[1,3,4,'hello',null,true];
//数组中可以写不同类型的内容,因为var不区分类型
//但一般都使用这个
//也可以new一个对象去定义数组
new Array(1,3,4,'hello',null,true);
/*打印时用浏览器控制台,console.log(arr[i])
i表示数组下标,与java一样,下标从0开始
数组下标越界会打印出undefined
*/
对象
对象是用大括号,数组用中括号
var person={
name:"vvv",
age:3,
tags:[1,3,5,7]
}
//每个属性值之间需要用,隔开,最后一个就不需要了
怎么打印?
在网页控制台上输person.name 就会出现定义的值
类似的,也可以输person.age person.tags[i]
注意
以上代码有的写的太过随意,因为js是弱语言,代码不会很严谨,但随意的代码会造成很多不便和问题,不利于开发者以及使用者,为此引出了严格检查模式如下
严格检查模式
在js代码前加上'use strict';即可,必须写在第一行
引入:局部变量一般建议使用let定义
数据类型转换
强制类型转换
类型转换主要指将其他数据类型转换为String Number Boolean
-
转换为String
方法一:调用被转换数据类型的toString()方法
var a=123;
a.toString();
console.log(typeof a);//number
console.log(a);//123
console.log(typeof a.toString());//string
不会改变原变量的类型,会将转换的结果返回
方法二:调用String()函数
var a=123;
a=String(a);
console.log(typeof a);//String
console.log(a);//123
注:null和undefined没有toString()方法,要用方法二,调用String()函数。会将null直接转为"null"
-
转换为Number
方法一:使用Number()函数
- 字符串-->数字
纯数字的字符串,直接转换为数字
字符串中有非数字内容,转换为NaN
是一个空串或都是空格,转换为0
- 布尔-->数字
true 转为1
false 转为0
- null-->数字 0
- undefined-->数字 NaN
方法二:专门用来处理字符串
parseInt() 把一个字符串转换为整数(将字符串中的有效整数取出来,转换为number)
var a="50.3px";
a=parseInt(a);
console.log(typeof a);//number
console.log(a);//50
parseFloat() 把一个字符串转换为浮点数(将字符串中的有效浮点数取出来,转换为number)
var a="50.3px";
a=parseFloat(a);
console.log(typeof a);//number
console.log(a);//50.3
注:若对非String类型做方法二处理,会先将其转换为String类型,再处理
- 转为Boolean
使用Boolean函数
- 数字-->布尔
除了0和NaN,其余都是true
- 字符串-->布尔
除了空串,其余都是true
- null和undefined都是false
- 对象也会转换为true

浙公网安备 33010602011771号