1、Number
Java的"数字类型"分为int、float、double、long等,但是在Js中,统一用Number来表示。其中有两个值比较特殊:
NaN:Not a Number,当计算结果无法表示时使用
Infinity:当计算结果超过了Js的Number的表示范围时使用
注:
比较运算符:== 和===
==会自动转换数据类型,通常比较的结果不是预期的结果
===不会自动转换数据类型,数据类型不一致,则返回false
NaN===Nan;//false
1 / 3 === 1 - 2 / 3;//false
浮点型有比较误差的,通常比较的话只能通过定义一个阈值来进行比较,比如:1 / 3 === 1 - 2 / 3 > 0.000001;//true
2、boolean
true
false
3、Null类型
null:表示空
4、Undefined 类型
一个没有被赋值的变量会有个默认值 undefined
5、字符串类型
JavaScript的字符串类型用于表示文本数据。它是一组16位的无符号整数值的“元素”。在字符串中的每个元素占据了字符串的位置。第一个元素的索引为0,下一个是索引1。
6、符号类型
符号(Symbols)是ECMAScript 第6版新定义的。符号类型是唯一的并且是不可修改的, 并且也可以用来作为Object的key的值(如下)
7、对象
在 Javascript 里,对象可以被看作是一组属性的集合.而属性,是键值对表示的。例如:
var person = {
name: 'Bob',
age: 20,
tags: ['js', 'web', 'mobile'],
city: 'Beijing',
hasCar: true,
zipcode: null
};
8、数组
var arr = [1, 2, 3.14, 'Hello', null, true];
var arr = new Array( 1, 2, 3.14, 'Hello', null, true);
取值时和Java是一样的,arr[0]、arr[1]
9、strict模式
JavaScript在设计之初,为了方便初学者学习,并不强制要求用var申明变量。这个设计错误带来了严重的后果:如果一个变量没有通过var申明就被使用,那么该变量就自动被申明为全局变量,这样会导致一个Js文件中的几处使用了变量i,导致i的值错乱。在后续的ECMA协议中退出了Strict模式来弥补。只需在Js的代码第一行写上:
'use strict';
若测试环境支持strict模式,则下面这行代码就很会报错,否则表示测试的浏览器的版本有点低了。
'use strict';
// 如果浏览器支持strict模式,
// 下面的代码将报ReferenceError错误:
c = 'Hello, world';
console.log(c);