美文网首页
JS 里的数据类型

JS 里的数据类型

作者: 成成成汤 | 来源:发表于2019-04-11 14:07 被阅读0次

JS 里的数据类型

JavaScript 的数据类型,有7种。

1,数值(number)
2,字符串(string)
3,布尔值(boolean)
4,符号(symbol)
5,undefined
6,null
7,对象(object)

数值(number)

1.1 整点和浮点数
JavaScript 语言的底层根本没有整数,所有数字都是小数(64位浮点数)由于浮点数不是精确的值,所以涉及小数的比较和运算要特别小心。
1.2 数值精度
根据国际标准 IEEE 754,JavaScript 浮点数的64个二进制位,从最左边开始,是这样组成的。
第1位:符号位,0表示正数,1表示负数
第2位到第12位(共11位):指数部分
第13位到第64位(共52位):小数部分(即有效数字)
符号位决定了一个数的正负,指数部分决定了数值的大小,小数部分决定了数值的精度。
1.3 数值范围
根据标准,64位浮点数的指数部分的长度是11个二进制位,意味着指数部分的最大值是2047(2的11次方减1)也就是说,64位浮点数的指数部分的值最大为2047,分出一半表示负数,则 JavaScript 能够表示的数值范围为21024到2-1023(开区间),超出这个范围的数无法表示。

//小数点前的数字多于21位
1234567890123456789012
// 1.2345678901234568e+21
//小数点后的零多于5个,就自动转为科学计数法
0.0000003 // 3e-7

2 数值的进制
十进制: 1.23e2=123
二进制: 0b1=1,0b10=2,0b11=3
八进制: 01=8,011=9
十六进制: 0x1=16,0x11=17
3 特殊的值
正零和负零:JavaScript 内部实际上存在2个0:一个是+0,一个是-0,区别就是64位浮点数表示法的符号位不同。它们是等价的。
NaN是 JavaScript 的特殊值,表示“非数字”(Not a Number),主要出现在将字符串解析成数字出错的场合。真正的奇葩,因为他自己也不等于自己。NaN === NaN // false
Infinity表示“无穷”,用来表示两种场景。一种是一个正的数值太大,或一个负的数值太小,无法表示;另一种是非0数值除以0,得到Infinity。

Infinity的四则运算,符合无穷的数学计算规则。
0乘以Infinity,返回NaN;0除以Infinity,返回0;Infinity除以0,返回Infinity。
Infinity加上或乘以Infinity,返回的还是Infinity。
Infinity减去或除以Infinity,得到NaN。
Infinity与null计算时,null会转成0,等同于与0的计算。
Infinity与undefined计算,返回的都是NaN。

4 与数值相关的全局方法
parseInt()//将字符串转为整数,自动去除字符串头部的空格,parseInt的参数如果不是字符串,会先转换为字符串再转换。遇到不是数字的就停止。如果字符串的第一个字符不能转化为数字(后面跟着数字的正负号除外),返回NaN。
parseFloat()//将一个字符串转为浮点数,如果字符串包含不能转为浮点数的字符,则不再进行往后转换,返回已经转好的部分。InFinity、NaN、undefined、返回false。parseFloat会将空字符串转为NaN。
isNaN()//判断一个值是否为NaN
isFinity()//表示某个值是否为正常的数值。只对+InFinity、-InFinity、NaN、undefined、返回false。
parseInt方法还可以接受第二个参数(2到36之间),表示被解析的值的进制,返回该值对应的十进制数。默认情况下,parseInt的第二个参数为10,即默认是十进制转十进制。

parseInt(' 81') // 81
parseInt('15px') // 15
parseInt('1000', 2) // 8
parseFloat('3.14more non-digit characters') // 3.14
isNaN('Hello') // true
isFinite(null) // true

字符串(string)

字符串就是零个或多个排在一起的字符,放在单引号或双引号之中。
'你好', "你好",
' ', " ", 这类是空字符串,长度为0。
' ', " ", 这类是空格字符串,长度为1。
奇葩需求1:在单引号字符串的内部,使用单引号,在双引号字符串的内部,使用双引号。
解决方法:使用转义符。
var a= ' ' '
var a= " " "
奇葩需求2:长字符串必须分成多行。
解决方法:

方法1(坑人语法),但是使用不小心会出bug,记得反斜杠的后面必须是换行符,而不能有其他字符(比如空格)。
var s1 = '12345
67890'
方法2(好读语法)
var s2 = '12345'+
'67890'
方法3(ES6新出的),使用反引号(1左边的符号)。
var s3 = ˋ12345
67890`
s3.length //11,会包含回车。

布尔值(boolean)

只有两个值,即true(真)和false(假)。

var a = true;
if(a){
console.log("条件为真");
}else{
console.log("条件为假");
}

符号(Symbol)

es6新增的类型的值。

undefined类型

一个值:undefined。是一个表示"此处无定义"的原始值。

null类型

一个值:null。是一个表示“空”的对象。

undefined和null的区别:
语法规范:如果一个变量被声明了,但是没有被赋值,那么这个变量的值就是 undefiend
惯例:如果想要表示一个还没赋值的对象,就用 null。如果想要表示一个还没赋值的非对象(字符串/数字/
布尔/symbol),就用 undefined。

对象(object)

对象就是一组“键值对”(key-value)的集合,是一种无序的复合数据集合。key代表键名,value代表键值
1.key
对象的所有键名都是字符串。如果键名是数值,会被自动转为字符串。如果键名不符合标识名的条件(比如第一个字符为数字,或者含有空格或运算符),且也不是数字,则必须加上引号,否则会报错。
2.value
value的值可以是任意的数据类型
3.属性的读取
读取对象的属性,有两种方法,一种是使用点运算符,还有一种是使用方括号运算符。

var obj = {
123: 'hello world'
};
obj.123 // 报错
obj[123] // "hello world"

4.属性的赋值
点运算符和方括号运算符,不仅可以用来读取值,还可以用来赋值。
5.属性的查看
查看一个对象本身的所有属性,可以使用Object.keys方法。

var obj = {
key1: 1,
key2: 2
};
Object.keys(obj);
// ['key1', 'key2']

6.属性的删除:delete 命令
delete命令用于删除对象的属性(删除键名和键值),删除成功后返回true。
delete命令会返回false,那就是该属性存在,且不得删除。
7.属性是否存在:in 运算符
in运算符用于检查对象是否包含某个属性(注意,检查的是键名,不是键值),如果包含就返回true,否则返回false。它的左边是一个字符串,表示属性名,右边是一个对象。

var obj = { p: 1 };
'p' in obj // true
'toString' in obj // true

8.属性的遍历:for...in 循环
for...in循环用来遍历一个对象的全部属性。

var obj = {a: 1, b: 2, c: 3};
for (var i in obj) {
console.log('键名:', i);
console.log('键值:', obj[i]);
}

它遍历的是对象所有可遍历(enumerable)的属性,会跳过不可遍历的属性。
它不仅遍历对象自身的属性,还遍历继承的属性。

相关文章

  • JS 里的数据类型

    JS 里的数据类型 JS中有七种数据类型,分别是:number,string,boolean,undefined,...

  • JS 里的数据类型转换

    JS 里的数据类型转换 Js中的数据类型一共有7种,即number,string,boolean,underfin...

  • 《JS里的数据类型》

    JS里的数据类型分为 原始数据类型(primitive type) 和 合成数据类型(complex type)...

  • JavaScript数据类型

    JS 里的数据类型 七种数据类型 Number,String,Boolean,Null,Undefined,Sym...

  • JS的类型转换

    JS的数据类型: 首先, JS的数据类型分为基本数据类型和引用数据类型基本数据类型: string number ...

  • JS里的数据类型转换

    上一篇文章(JS里的数据类型)介绍了js中的数据类型。这篇主要介绍数据类型转换。 一、任意类型转字符串 转换成st...

  • JS 里的数据类型转换

    前言:上一篇博客讲到JS里的数据类型,相信大家已经了解到7种数据类型,那么这章将详细深入了解JS的不同数据类型之间...

  • JS里的数据类型转换及小技巧

    前言:之前的博客JS里的数据类型介绍了JS中的各种数据类型,那么可不可以把其他的数据类型转换成特定的一种数据类型呢...

  • JS 里的数据类型

    JS里的数据类型包含七种数据类型:number string boolean symbol undefined n...

  • JS 里的数据类型

    JS 里的数据类型 JavaScript 的数据类型,有7种。 1,数值(number)2,字符串(string)...

网友评论

      本文标题:JS 里的数据类型

      本文链接:https://www.haomeiwen.com/subject/ynhtwqtx.html