javascript基本数据类型
来源:互联网 发布:人工智能 被黑客攻击 编辑:程序博客网 时间:2024/06/07 02:14
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
- 转换为true
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); //falseconsole.log(0/0);//NaNconsole.log(10/0);//Infinityconsole.log(-10/0);//-Infinity
- 检测:isNaN()
- 可以转换为数值:false
- 不能转换为数值:true
alert(isNaN(NaN)); //truealert(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();
- Boolean
- parseInt();
特性:- 忽略前置空格
- 直接找到第一个非空格字符
- 不是数字字符或符号:NaN
- 数字字符:解析所有后续字符;遇到非数字字符结束
- 小数点不是有效数字;
参数:(要解析的字符串,转换时所使用的基数)
- parseFloat();
- 从第一个字符开始解析
- 遇到无效浮点格式后结束
- 只有第一个小数点有效
- 忽略前导0
- 十六进制数始终为0
- 没有小数点或小数点后全0:转换为整数;
- Number()
object(非基本类型)
定义
一组数据或功能的集合
声明
var o = new Object();
属性与方法
- Constructor
保存用于创建当前对象的函数 - hasOwnProperty(propertyName)
检测给定属性在当前对象实例中是否存在 - isPrototypeOf(object)
检测传入的对象是否另一个对象的原型 - propertyIsEnumerable(propertyName)
检测给定属性是否能用for-in语句枚举 - toLocaleString()
返回对象的字符串表示,该字符串与执行环境的地区对应 - toString()
返回对象的字符串表示 - valueOf()
返回对象的字符串、数值或布尔值表示;通常与toString()的值相同
注:所有对象都具有上述基本的属性和方法。
0 0
- javascript基本数据类型
- javascript基本数据类型
- JavaScript基本数据类型
- javascript基本数据类型
- javascript基本数据类型
- JavaScript(2)----基本数据类型
- JavaScript的基本数据类型
- JavaScript的基本数据类型
- JavaScript基本数据类型
- javaScript基本数据类型
- javascript基本数据类型
- JavaScript基本数据类型综述
- javascript基本数据类型
- Javascript的基本数据类型
- javaScript基本数据类型
- 【JavaScript基本数据类型】
- JavaScript中的基本数据类型
- javascript基本数据类型
- 京东云缓存JIMDB建设之路
- 编写一个函数实现n^k,使用递归实现
- java设计模式之观察者模式
- error C4996: 'scanf': This function or variable may be unsafe.Visual Studio系列编译器使用scanf函数报错
- Zookeeper的功能以及工作原理
- javascript基本数据类型
- Android性能优化典范——通晓过度绘制(Understanding Overdraw)
- 柔性数组
- spring事件机制——异步配置
- Java基础篇(四——1)——集合框架之Collection接口
- 按键从本地备份升级实现android
- 京东分布式存储建设之路(JFS)
- 密码学(二)—RSA后端加解密java实现
- UVA-6.4.1-油田-572-DFS