您的位置:首页 > Web前端 > JavaScript

javascript基本数据类型

2017-01-13 19:42 274 查看
ECMAScript 中有5 种简单数据类型(也称为基本数据类型):Undefined、Null、Boolean、Number和String。

Undefined

使用var声明变量但未初始化

区分空对象指针与尚未定义的变量

对未初始化的变量及未声明的变量使用typeof运算符均会返回undefined

var message;
//var a;
console.log(message); //undefined
console.log(typeof(message)); //undefined
console.log(a); //null
console.log(typeof(a)); //undefined


注:message是被系统自动赋值为undefined;a是未定义,所以检测类型也为undefined,值为null;undefined派生自null

null

逻辑上null表示一个空对象的指针

使用typeof检测时会返回object

var a = null;
console.log(typeof(a));//object


Boolean

true为真,false为假

true不一定等于1,false不一定等于0

使用Boolean()进行转换

转换为true

任何非空字符串

任何非零数值

任何非空对象

转换为false

空字符串

0及NaN

null及undefine

var message = "Hello world!";
if (message){
alert("Value is true");
}
//字符串message 被自动转换成了对应的Boolean 值true


string

特性

由0个或多个16位的Unicode字符组成

单引号与双引号不能交叉使用

使用.length属性访问字符串长度

转义序列表示一个字符

无法精确返回双字节字符长度

字符串一旦被创建,其值将不能改变,若要改变必须销毁原有字符串

var lang = "Java";
lang = lang + "Script"; //创建新字符串并销毁原来字符串


转义序列

\n(换行)

\t(制表符)

\b(空格)

\r(回车符)

\f(分页符)

\(斜杠\)

\’(单引号)

\”(双引号)

\xnn(十六进制数,n代表0~F)

\unnnn(以十六进制代码表示一个Unicode字符)

类型转换

toSting()

使用类型:number、boolean、string、object

参数:number类型的数值基数

var num = 10;
alert(num.toString()); // "10"
alert(num.toString(2)); // "1010"
alert(num.toString(8)); // "12"
alert(num.toString(10)); // "10"
alert(num.toString(16)); // "a"


String()

null

undefined

var value1 = 10;
var value2 = true;
var value3 = null;
var value4;
alert(String(value1)); // "10"
alert(String(value2)); // "true"
alert(String(value3)); // "null"
alert(String(value4)); // "undefined"


eval()

计算字符串表达式的值并以数值的形式返回

console.log(eval("alert('hi')")==alert("hi"));
//true


number

进制

十进制

八进制:前导(0);范围(0~7);超出(前导位0被忽略、后续数值一十进制计数)

十六进制:前导(0x);范围(0~9、A~F)

浮点数

小数点后至少一位数字

科学计数法

小数点后带有6个0的浮点数

以e为底*10的±N次幂

最高精度17位小数

缺陷:存在舍入误差;无法测试特定浮点数值

数值范围

最小值:Number.MIN_VALUE

最大值:Number.MAX_VALUE

超出范围

正无穷:Infinity;Number.POSITIVE_INFINITY

负无穷:-Infinity;Number.NEGATIVE_INFINITY

缺陷:无法参与下一次计算

检测方法:isFinite()-超出范围:false;合法范围:true

NaN

含义

Not a Number

非数值

特性

任何涉及NaN的操作都将返回NaN

NaN与任何数值都不相等包括其自身

console.log(NaN == NaN); //false
console.log(0/0);//NaN
console.log(10/0);//Infinity
console.log(-10/0);//-Infinity


检测:isNaN()

可以转换为数值:false

不能转换为数值:true

alert(isNaN(NaN)); //true
alert(isNaN(10)); //false(10 是一个数值)
alert(isNaN("10")); //false(可以被转换成数值10)
alert(isNaN("blue")); //true(不能转换成数值)
alert(isNaN(true)); //false(可以被转换成数值1)


数值转换

Number()

Boolean

a. true:1;

b. false:0;

null :0

undefined:NaN

String

object

a. valueOf();

b. toString();

parseInt();

特性:

忽略前置空格

直接找到第一个非空格字符

不是数字字符或符号:NaN

数字字符:解析所有后续字符;遇到非数字字符结束

小数点不是有效数字;

参数:(要解析的字符串,转换时所使用的基数)

parseFloat();

从第一个字符开始解析

遇到无效浮点格式后结束

只有第一个小数点有效

忽略前导0

十六进制数始终为0

没有小数点或小数点后全0:转换为整数;

object(非基本类型)

定义

一组数据或功能的集合

声明

var o = new Object();


属性与方法

Constructor

保存用于创建当前对象的函数

hasOwnProperty(propertyName)

检测给定属性在当前对象实例中是否存在

isPrototypeOf(object)

检测传入的对象是否另一个对象的原型

propertyIsEnumerable(propertyName)

检测给定属性是否能用for-in语句枚举

toLocaleString()

返回对象的字符串表示,该字符串与执行环境的地区对应

toString()

返回对象的字符串表示

valueOf()

返回对象的字符串、数值或布尔值表示;通常与toString()的值相同

注:所有对象都具有上述基本的属性和方法。

$(".MathJax").remove();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript