JavaScript的数据类型详解
来源:互联网 发布:自动铅笔 知乎 编辑:程序博客网 时间:2024/04/27 13:26
JavaScript的数据类型详解
基本类型:Number、String、Boolean、Null、Undefined
对象类型:object(包括Array、Function、Date、Json等)
typeof 操作符
检测当前变量的数据类型的方法,也就是typeof关键字.
通过typeof关键字,对这5种数据类型会返回下面的值(以字符串形式显示)
undefined ---------- 如果值未定义Undefined
boolean ---------- 如果这个值是布尔值Boolean
string ---------- 如果这个值是字符串String
number ---------- 如果这个值是数值类型Number
object ---------- 如果这个值是对象Object或null
需要注意的是typeof null返回为object,因为特殊值null被认为是一个空的对象引用。
例:typeof null; //"object"
typeof 1; //"number"
typeof "1" //"string"
Null
Null类型是只有一个值的数据类型,这个特殊的值是null。
null值表示一个空对象指针。只要意在保存对象的变量还没有真正保存对象,就应该明确地让该变量保存null值。而这也正是使用typeof操作符检测null时会返回object的原因。
往往用来表示意料之中的空,空对象不能添加自定义属性等东西。
Undefined
Undefined类型只有一个值,即特殊的undefined。
在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined。
往往用来表示出乎意料的空,一般表示你写的程序有错误。
实际上,undefined值是派生自null值的,因此ECMA-262规定对它们的相等性测试要返回true。
即console.log(undefined == null); //true
Boolean
该类型只有两个字面值:true和false。
这两个值与数字值不是一回事,因此true不一定等于1,而false也不一定等于0。
JavaScript中所有类型的值都有与这两个Boolean值等价的值。调用类型转换函数Boolean(),可将一个值转换为其对应的Boolean值。
var message = 'Hello World'; var messageAsBoolean = Boolean(message);
转换规则
Number
这种类型用来表示整数和浮点数值(不区分两者),还有一种特殊的数值,即NaN(非数值 Not a Number)。
NaN
这个数值用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)。例如,在其他编程语言中,任何数值除以0都会导致错误,从而停止代码执行。但在JavaScript中,任何数值除以0会返回NaN,因此不会影响其他代码的执行。
NaN本身有两个非同寻常的特点。
1.任何涉及NaN的操作(例如NaN/10)都会返回NaN。
2.NaN与任何值都不相等,包括NaN本身。例如,下面的代码会返回false。
alert(NaN == NaN); //false
String
var s = “nihao” //String类型用于表示由零或多个16位Unicode字符组成的字符序列,即字符串。
方法:
length方法:输出它的长度,空格也算长度
charAt()方法:输出()里下标处的字符
Object
Object本质上是由一组无序的名值对组成的。
object可以添加自定义属性 obj.abc = 123;也可以写成obj={“abc”:”123”}
JavaScript的数据类型的转换
转化数字方法
a.显性转化
Number(a)
空和空格都会转换成0,布尔值会变成1和0,null会变成0,函数、json、未定义和对象会变成NaN(not a number),特殊的数组如果为空或一个数据时会根据里面的数据像字符串一样去转,多个数据时变成NaN
parseInt
从左到右碰到非数字后将前面的输出(会认识一些特殊符号,如+-空格)
parseInt(b,10) 前面是数字,后面代表转为十进制
parseFloat
会保留1个小数点后面的部分
var b = ”175.23.56” 会变成175.23,只会看第一个小数点和第一个小数点后边的数字。
b.隐式类型转换
+ 除了数字加数字 其余的如数字和字符串相加 运算时都会转换为字符串的连接
- * / % 会让数字字符串和数字的运算结果转换成数字类型
++ -- 可以让数字字符串转换成数字
> < 会让字符串和数字的比较正确显示,但是两个字符串不行。
如:'10'>9和'10'>'9',字符串的比较是一位一位的比较,第一位如果比出来后面就不会再比较了。
! 取反,一个字符串或数字放在if判断里为真,所以取反会变成false,最后结果一定是布尔值
== 如果两边相同(即使不同类型,如:'2'和2),就相等
=== 会判断类型,如果类型不同即使相同则返回false
无论是哪种转换方法,如果无法转换就会返回NaN
逻辑与 &&
遇到false就返回
如都是ture返回最后一个
逻辑或 ||
遇到true就返回
如果都不满足时 返回最后一个
与的优先级大于或
JavaScript还提供了包装对象,如:
var n = new Number(123); // 123,生成了新的包装类型
var b = new Boolean(true); // true,生成了新的包装类型
var s = new String('str'); // 'str',生成了新的包装类型
虽然包装对象看上去和原来的值一模一样,显示出来也是一模一样,但他们的类型已经变为object了!所以,包装对象和原始值用===比较会返回false。
阅读全文
0 0
- JavaScript的数据类型详解
- JavaScript的数据类型详解
- JavaScript数据类型详解
- javascript数据类型详解
- JavaScript中数据类型详解
- JavaScript数据类型详解
- JavaScript 数据类型详解
- JavaScript中数据类型详解
- javascript数据类型详解
- 学习总结-javascript数据类型详解
- JavaScript 的数据类型
- javascript数据类型的转换
- JavaScript的数据类型
- Javascript的简单数据类型
- javascript的数据类型
- javascript的数据类型
- 判断JavaScript的数据类型
- Javascript的简单数据类型
- 接触学习linux系统服务搭建两年来的心得
- 将数组进行反转
- 欢迎使用CSDN-markdown编辑器
- POI读程案例
- Linux CentOS 6.6安装JDK1.7
- JavaScript的数据类型详解
- input实用vtype数据校验
- Intellij idea创建javaWeb以及Servlet简单实现
- #感知机的Python实现
- 浑浑噩噩眼看快毕业了,记录一下自己的代码以防以后会忘记把
- 斯坦福机器学习笔记 第2周 五、Octave教程(二)
- 过路费 最短路
- 怎样的程序员才会有出头之日
- 文章标题