javascript基本数据类型
2017-01-13 19:42
274 查看
ECMAScript 中有5 种简单数据类型(也称为基本数据类型):Undefined、Null、Boolean、Number和String。
区分空对象指针与尚未定义的变量
对未初始化的变量及未声明的变量使用typeof运算符均会返回undefined
注:message是被系统自动赋值为undefined;a是未定义,所以检测类型也为undefined,值为null;undefined派生自null
使用typeof检测时会返回object
true不一定等于1,false不一定等于0
使用Boolean()进行转换
转换为true
任何非空字符串
任何非零数值
任何非空对象
转换为false
空字符串
0及NaN
null及undefine
单引号与双引号不能交叉使用
使用.length属性访问字符串长度
转义序列表示一个字符
无法精确返回双字节字符长度
字符串一旦被创建,其值将不能改变,若要改变必须销毁原有字符串
\t(制表符)
\b(空格)
\r(回车符)
\f(分页符)
\(斜杠\)
\’(单引号)
\”(双引号)
\xnn(十六进制数,n代表0~F)
\unnnn(以十六进制代码表示一个Unicode字符)
使用类型:number、boolean、string、object
参数:number类型的数值基数
String()
null
undefined
eval()
计算字符串表达式的值并以数值的形式返回
十进制
八进制:前导(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与任何数值都不相等包括其自身
检测:isNaN()
可以转换为数值:false
不能转换为数值:true
数值转换
Number()
Boolean
a. true:1;
b. false:0;
null :0
undefined:NaN
String
object
a. valueOf();
b. toString();
parseInt();
特性:
忽略前置空格
直接找到第一个非空格字符
不是数字字符或符号:NaN
数字字符:解析所有后续字符;遇到非数字字符结束
小数点不是有效数字;
参数:(要解析的字符串,转换时所使用的基数)
parseFloat();
从第一个字符开始解析
遇到无效浮点格式后结束
只有第一个小数点有效
忽略前导0
十六进制数始终为0
没有小数点或小数点后全0:转换为整数;
保存用于创建当前对象的函数
hasOwnProperty(propertyName)
检测给定属性在当前对象实例中是否存在
isPrototypeOf(object)
检测传入的对象是否另一个对象的原型
propertyIsEnumerable(propertyName)
检测给定属性是否能用for-in语句枚举
toLocaleString()
返回对象的字符串表示,该字符串与执行环境的地区对应
toString()
返回对象的字符串表示
valueOf()
返回对象的字符串、数值或布尔值表示;通常与toString()的值相同
注:所有对象都具有上述基本的属性和方法。
$(".MathJax").remove();
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中的基本数据类型
- JavaScript中的基本数据类型
- 15-JavaScript-基本语法-变量-规则-数据类型
- php程序员学习javascript:第一章:javascript基本语法:数据类型
- javascript对象转化为基本数据类型规则
- javascript基本数据类型
- (3)javascript 基本概念--- -- 数据类型
- javascript的5种基本数据类型和1种复杂数据类型
- 读javascript高级程序设计01-基本概念、数据类型、函数
- Javascript学习笔记1-基本数据类型
- javascript基本数据类型
- Javascript -- 函数及基本数据类型
- javascript学习笔记三:javascript基本数据类型+正则表达式+异常处理
- JavaScript 中的基本数据类型 数组 循环
- JavaScript 基本数据类型和Object 转换
- JavaScript学习笔记之二基本数据类型
- Javascript学习笔记一基本数据类型与变量声明
- JavaScript语法详解(三)__基本数据类型
- javascript中的基本数据类型
- JavaScript基本数据类型