js数据类型
Posted wybslj
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js数据类型相关的知识,希望对你有一定的参考价值。
javascript数据类型
Number
JavaScript不区分整数和浮点数,统一用Number表示。
123; // 整数123 0.456; // 浮点数0.456 1.2345e3; // 科学计数法表示1.2345x1000,等同于1234.5 -99; // 负数 NaN; // NaN表示Not a Number,当无法计算结果时用NaN表示 Infinity; // Infinity表示无限大,当数值超过了JavaScript的Number所能表示的最大值时,就表示为Infinity
十六进制用0x前缀和0-9,a-f表示,例如:0xff00
,0xa5b4c3d2
1 + 2; // 3 (1 + 2) * 5 / 2; // 7.5 2 / 0; // Infinity 0 / 0; // NaN 10 % 3; // 1 10.5 % 3; // 1.5
字符串
可以用单引号或者双引号括起。
布尔值
true; false; 1>2; // false
2>3; // true
&& 与运算 全true才为true
|| 或运算 一个true全为true
! 非运算
比较运算符
当我们对Number进行比较时,可以通过比较运算符得到一个布尔值。
1 > 2; // false
7 == 7; // true
实际上,JavaScript允许对任意数据类型做比较:
false == 0; // true false === 0; // false
要特别注意相等运算符==
。JavaScript在设计时,有两种比较运算符:
第一种是==
比较,它会自动转换数据类型再比较,很多时候,会得到非常诡异的结果;
第二种是===
比较,它不会自动转换数据类型,如果数据类型不一致,返回false
,如果一致,再比较。
由于JavaScript这个设计缺陷,不要使用==
比较,始终坚持使用===
比较。
另一个例外是NaN
这个特殊的Number与所有其他值都不相等,包括它自己:
NaN === NaN; // false 唯一能判断NaN的方法是通过isNaN()函数: isNaN(NaN); // true
最后要注意浮点数的相等比较:
1 / 3 === (1 - 2 / 3); // false
这不是JavaScript的设计缺陷。浮点数在运算过程中会产生误差,因为计算机无法精确表示无限循环小数。要比较两个浮点数是否相等,只能计算它们之差的绝对值,看是否小于某个阈值:
Math.abs(1 / 3 - (1 - 2 / 3)) < 0.0000001; // true
null和undefined
null
表示一个“空”的值,它和0
以及空字符串‘‘
不同,0
是一个数值,‘‘
表示长度为0的字符串,而null
表示“空”。
在其他语言中,也有类似JavaScript的null
的表示,例如Java也用null
,Swift
用nil
,Python用None
表示。但是,在JavaScript中,还有一个和null
类似的undefined
,它表示“未定义”。
JavaScript的设计者希望用null
表示一个空的值,而undefined
表示值未定义。事实证明,这并没有什么卵用,区分两者的意义不大。大多数情况下,我们都应该用null
。undefined
仅仅在判断函数参数是否传递的情况下有用。
数组
类似于Python中的列表。使用[]表示,元素使用,隔开。
["a","b",1,2,[1,2,3,"a"]]
创建数组的方法是通过Array()
函数实现
new Array(1, 2, 3); // 创建了数组[1, 2, 3]
var arr = [1, 2, 3.14, ‘Hello‘, null, true];
对象
Python中的字典,由键值对组成的无序集合。
var person = name: ‘Bob‘, age: 20, tags: [‘js‘, ‘web‘, ‘mobile‘], city: ‘Beijing‘, hasCar: true, zipcode: null ;
上述person
对象一共定义了6个键值对,其中每个键又称为对象的属性,例如,person
的name
属性为‘Bob‘
,zipcode
属性为null
。
要获取一个对象的属性,我们用对象变量.属性名
的方式:
person.name; // ‘Bob‘
person.zipcode; // null
变量
var a; // 申明了变量a,此时a的值为undefined var $b = 1; // 申明了变量$b,同时给$b赋值,此时$b的值为1 var s_007 = ‘007‘; // s_007是一个字符串 var Answer = true; // Answer是一个布尔值true var t = null; // t的值是null
strict模式
开始方式:在JavaScript代码的第一行写上:
‘use strict‘;
作用:在strict模式下运行的JavaScript代码,强制通过var
申明变量,未使用var
申明变量就使用的,将导致运行错误。
不启用:JavaScript的设计缺陷,不启用的话,
a = 5;默认是一个全局变量,在同一个页面的不同的JavaScript文件中,如果都不用var
申明,恰好都使用了变量i
,将造成变量i
互相影响,产生难以调试的错误结果。
var a; // 申明了变量a,此时a的值为undefined
var $b = 1; // 申明了变量$b,同时给$b赋值,此时$b的值为1
var s_007 = ‘007‘; // s_007是一个字符串
var Answer = true; // Answer是一个布尔值true
var t = null; // t的值是null
以上是关于js数据类型的主要内容,如果未能解决你的问题,请参考以下文章