Javascript的数据类型不包括什么

Javascript的数据类型不包括Symbol,JavaScript有6种数据类型,分别是Undefined、Null、Boolean、Number、String和Object。

Javascript的数据类型不包括什么

本文操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

Javascript的数据类型不包括什么?

本文根据(JavaScript高级程序设计(第3版))总结

JavaScript之六大数据类型(不包括Symbol)

立即学习“Java免费学习笔记(深入)”;

JavaScript 有6中数据类型——Undefined,Null,Boolean,Number,String和Object

ES6中有7种, 多了一种数据类型Symbol, 本文不涉及.

Undefined表示未定义,Null表示空,Boolean表示布尔值,Number表示数值,String表示字符串。
通常我们可以用typeof操作符来检测变量的数据类型。

注意typeof是操作符!操作符!操作符!

typeof操作符应用一下规则:

“undefined”——这个值是未定义的。”boolean”——这个值是布尔值”string”——这个值是字符串”number”——这个值是数值”object”——这个值是对象或Null”function”——这个值是函数

例如字符串 str=”我是String类型”:

console.log(typeof str) //"string" 注意typeof操作符的返回的结果是字符串

登录后复制

对于typeof操作符, 还有一点诡异的地方,那就是:
1. typeof对null返回”object”,
2. typeof对未声明的变量返回”undefined”
3. typeof对声明而未初始化的变量也返回”undefined”

var s = nullconsole.log(typeof s) //"object"console.log(typeof a) //"undefined", 注意变量a未声明var b;console.log(typeof b) //"undefined", 注意变量b声明但未初始化

登录后复制

因为typeof的诡异特性,且我们还需进步知道变量的具体信息,我们常用instanceof来确定变量的数据类型。

Undefined和Null

Undefined和Null类型只有一个值,那分别是undefined和null。
对于undefined来说,需要记住下面两点:

已声明但未初始化的变量值为undefined(参考上面代码)undefined和null相等

console.log(undefined == null) //true

登录后复制

对于null来说,需要记住两点:

typeof null 返回”object”,从逻辑上看,null为object的引用(示例见typeof)undefined和null相等

Boolean

Boolean类型有两个值——true和false。
任何数据可以调用布尔函数Boolean(), 会返回一个布尔值。

类型 true false

BooleantruefalseString非零字符串“”(空字符串)Number非零数字(包括无穷大)0和NaNObject任何对象nullUndefined不适用undefinedNull不适用null

为了便于记忆, 只需记住false,””(空字符串),0,NaN,null和undefined会使Boolean()函数变为false,其他为true即可。

代码范例:

console.log(Boolean(true)) //trueconsole.log(Boolean(""))   //falseconsole.log(Boolean(1))  //trueconsole.log(Boolean(null)) //false

登录后复制

Number

Number类型使用IEEE754格式表示整数和浮点数。对于整数,JavaScript若遇到八进制和十六进制数会自动转换为十进制数, 若数的范围超过八进制和十六进制的便是范围则解析为是十进制数。

console.log(070) //56console.log(0xA) //10

登录后复制

八进制在严格模式下出错。

对于浮点数,Javascript会将小数点后全为0的小数和小数点后没有数字的小数自动转换为整数。

console.log(1.00) //1console.log(10.) //10

登录后复制

浮点数最高精度为17位小数, 但是在算术运算时需要注意下面的式子:

console.log(0.1+0.2) //0.30000000000000004

登录后复制

这也是IEEE754格式表示的通病。

数值范围

Number有两个属性表示JavaScript的数值范围——Number.MAX_VALUE和 Number.MIN_VALUE。Number.MAX_VALUE表示在JavaScript中最大的值,若超出其范围则会转为infinity 。
Number.MIN_VALUE表示在JavaScript中最小的正值,若超出其范围则会转为0。
Number.MAX_VALUE 在大多数浏览其中是1.7976931348623157e+308.
我们可以通过isFinite()方法来确定变量是否在Number.MAX_VALUE和 Number.MIN_VALUE之间,若在,则返回true, 反之则返回false。

var num = Number.MAX_VALUE+Number.MAX_VALUE;  //超出了Number.MAX_VALUEconsole.log(isFinite(num)); //false

登录后复制

Number中有个特殊值–NaN, 这个数表示非数值(Not a number). 这个数有两个特点:

任何设计NaN的操作都返回NaN.NaN不等于任何值(包括它本身).

我们通常可以用isNaN()函数确定某个变量是否是NaN.

console.log(isNaN(NaN))  // trueconsole.log(isNaN("1"))  //false

登录后复制

数值转换 Number(), parseInt()和parseFloat()

有三个函数可以讲将数值转换为数值类型: Number(), parseInt(), parseFloat().
Number()函数的转换规则如下:

对于Boolean类型数值, true转换为1, false转换为0将null转换为0将undefined转换为NaNString类型的值按以下规则转换
若字符串中只包含数字(包括前面带正负号), 则将其转换为十进制数. 且忽略前导0.若字符串包含有效的浮点格式数, 则转换为浮点数. 忽略前导0.若字符串包含有效的十六进制格式(如”0xf”), 则将其转换为相同大小的十进制数.若为空串, 则转换为0若字符串包含上述格式之外的其他子, 则转换为NaN待转换类型是对象时, 调用对象的valueOf()方法返回某一值, 再按前面的方法转换(第一次转换)
当第一次转换结果为NaN时, 调用对象的toString()方法返回字符串值, 再按前面的方法转换

parseInt()函数有两个参数, 第一个参数为待转换的字符串(若不是字符串则使用ToString()函数转换为字符串), 第二个参数2到36之间的一个数, 作为基数使用. 基数可以省略, 默认基数为10.

parseInt() 在解析第一个参数(字符串)时会忽略字符串前面的空格, 知道找到第一个非空格字符. 如果第一个字符不是数字字符或者负号, parseInt()会返回NaN; 也就是说, 用parseInt() 转换空字符串会返回NaN(Number对空字符串返回0). 如果第一个字符是数字字符, parseInt() 会继续解析第二个字符, 直到解析完所有后续字符或者遇到了一个非数字字符.
来源于(JavaScript高级程序设计(第3版))

console.log(parseInt("   1234blue")) //1234console.log(parseInt("")) //NaNconsole.log(parseInt("AF", 16)) //175

登录后复制

parseFloat() 相比于前两个, 他只能解析十进制数. 当解析的字符串可以解析成整数时也会被解析位整数.

console.log(parseFloat("1234basd")) // 1234console.log(parseFloat("22.5") // 22.5

登录后复制

更多信息可以查看文档:
Number Object
parseInt()和parseFloat()

String

String 类型常用语表示16位Unicode字符组成的字符序列, 也就是我们常说的字符串. 字符串有个鲜明的特点, 那就是字符串一旦创建, 他们的值就不会改变.

字符字面量

String类型若想包含一些特殊字符如 ‘(单引号)或 ” (双引号) , 就必须使用转义字符. 也可以叫它们字符字面量.
常用字符字面量如下所示:

字面量 含义

换行符制表符退格符回车符换页符斜杠’单引号”双引号xnnx表示十六进制, n为0-F, nn表示一个字符. 如A表示”A”unnnnu表示Unicode, 也为十六进制. nnnn表示一个十六进制的Unicode字符

例如:

console.log("这是单引号: '")    //这是单引号: 'console.log("这是换行符")/*这是换行符*/console.log("这是大写字母: A")  //这是大写字母: A

登录后复制

转换为字符串 toString()和String()

大部分值都有toString()方法, 因此我们可以使用这个方法.

var a = 2console.log(a.toString()) //2var b = trueconsole.log(b.toString()) //true

登录后复制

还可以给toString()添加一个参数, 这个参数表示基数.

var num = 7console.log(num.toString(2)) //111console.log(num.toString(3)) //21

登录后复制

前面说了大部分值可以使用toString()方法, 那么哪些值不能使用呢? 那就是null和undefined.
当我们需要将一个变量A转换为字符串时, 假如我们不知道变量A是否是null和undefined, 我们可以使用String()函数. 这个函数可以讲任意类型的值转换为字符串. 其规则如下:

如果可以调用toString()方法则调用该方法.如果是null, 则返回”null”如果是undefined, 则返回”undefined”

Object

Object 类型俗称对象, 对象的实例通常使用new操作符进行创建. 对象的实例还是对象, 我们会在对象的实例中添加属性和方法.

var obj = new Object();

登录后复制

Object的实例有下列基本的属性和方法:

constructor
constructor属性保存着穿件当前对象的函数, 也叫构造函数. 如上例中的Object()hasOwnProperty(propertyName)
这个方法用于检测当前对象实例中是否有属性名为propertyName的属性. propertyName必须为字符串isPrototypeOf(object)
其用于检查传入的对象object是否为当前对象实例的原型propertyIsEnumerable(propertyName)
用于检查给定的属性propertyName是否可以用for-in语句来枚举. propertyName必须为字符串toLocaleString(), toString(), valueOf()
这三个方法都可以返回对象的字符串表示, valueOf()还可以返回对象的数值, 布尔值表示.
可以参考这篇文章:Javascript toString()、toLocaleString()、valueOf()三个方法的区别-博客园-一个悬浮在空中的胖子

var obj = new Object()obj.constructor //ƒ Object() { [native code] }obj.name = "ES" //给obj添加属性obj.hasOwnProperty("name")  //true, 注意参数必须为字符串形式obj.propertyIsEnumerable("name")    //trueobj.toString()  //"[object Object]"

登录后复制

推荐学习:《javascript高级教程》

以上就是Javascript的数据类型不包括什么的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2948608.html

(0)
上一篇 2025年3月11日 23:09:52
下一篇 2025年3月11日 09:40:57

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • javascript怎么修改table值

    javascript修改table值的方法:首先打开相应的前端代码文件;然后找到js代码部分;最后通过“function getTdDirectly(){…}”方法修改table中td的值即可。 本文操作环境:windows7系…

    2025年3月11日
    200
  • javascript脚本出现在什么位置

    javascript脚本可以出现在两个位置,分别是:1、在HTML body部分中,该位置的js会在页面加载的时候被执行;2、在HTML head部分中,该位置的js会在被调用的时候才执行。 本文操作环境:windows7系统、javasc…

    2025年3月11日
    200
  • JavaScript中如何刷新页面

    JavaScript中刷新页面的方法:1、通过reload()方法刷新当前文档;2、通过replace()方法用一个新文档取代当前文档。 本文操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。 JavaS…

    2025年3月11日
    200
  • javascript怎么验证是否为数字

    javascript验证是否为数字的方法:1、使用isNaN()函数验证;2、使用正则表达式验证;3、利用parseFloat()的返回值验证。 本文操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。 j…

    2025年3月11日
    200
  • javascript怎样验证手机号码

    javascript验证手机号码的方法:首先创建一个js代码文件;然后通过正则表达式“return /^1[3-9]d{9}$/.test(mobile)”来判断手机号码是否正确即可。 本文操作环境:windows7系统、javascrip…

    2025年3月11日
    200
  • javascript是一门什么脚本语言

    javascript是一门高级的、解释型的编程语言,是一门基于原型、头等函数的语言,也是一门多范式的语言,它支持面向对象程序设计,指令式编程,以及函数式编程。 本文操作环境:windows7系统、javascript1.8.5版、Dell …

    2025年3月11日
    200
  • javascript怎么删除 tr

    javascript删除tr的方法:首先创建一个HTML示例文件;然后定义好table表格;最后通过“function delete2(obj){…}”方法删除tr元素即可。 本文操作环境:windows7系统、javascri…

    2025年3月11日
    200
  • 屏蔽javascript会怎样

    屏蔽javascript会造成页面上很多功能无法使用,因为JavaScript的作用就是为网页添加各式各样的动态功能,也是为用户提供更流畅美观的浏览效果。 本文操作环境:windows7系统、javascript1.8.5版、Dell G3…

    2025年3月11日
    200
  • JavaScript中怎么取整

    JavaScript中取整的方法:1、通过Math.floor()向下取整;2、通过Math.ceil()向上取整;3、通过Math.round()四舍五入;4、通过parseInt()取整。 本文操作环境:windows7系统、javas…

    2025年3月11日
    200
  • javascript会代替Java吗

    javascript不会代替Java,并且也没有替代的情况,因为javascript和Java是完全不同的概念;JavaScript是一种轻量级的编程语言,而Java是一种通过解释方式来执行的语言。 本文操作环境:windows7系统、ja…

    2025年3月11日
    200

发表回复

登录后才能评论