js 类型转换学习

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: 类型转换分为显示转换和隐式转换 参考http://www.cnblogs.com/mizzle/archive/2011/08/12/2135885.html 先事件显示的 通过手动进行类型转换,Javascript提供了以下转型函数: 转换为数值类型:Number(mix)、parseIn...

类型转换分为显示转换和隐式转换

参考http://www.cnblogs.com/mizzle/archive/2011/08/12/2135885.html

先事件显示的

通过手动进行类型转换,Javascript提供了以下转型函数:

转换为数值类型:Number(mix)、parseInt(string,radix)、parseFloat(string)
        转换为字符串类型:toString(radix)、String(mix)
        转换为布尔类型:Boolean(mix)

1、Number(mix)函数,可以将任意类型的参数mix转换为数值类型。其规则为:

 

1. 用于检测是否为非数值的函数:isNaN(mix)

isNaN()函数,经测试发现,该函数会尝试将参数值用Number()进行转换,如果结果为“非数值”则返回true,否则返回false。

不是number 是 parseInt 或parseFloat

范例

isNaN(1,1)

  console.log('parseInt 比 Number 多了个 如果第一个字符是数字,则继续解析直至字符串解析完毕或者遇到一个非数字符号为止')

实践了下

  console.log('')
    console.log('Number(mix)函数,可以将任意类型的参数mix转换为数值类型。其规则为:')
    console.log('如果是布尔值,true和false分别被转换为1和0')
    console.log('Number(true)')
    console.log(Number(true))
    console.log('Number(false)')
    console.log(Number(false))
    console.log('如果是数字值,返回本身')
    console.log(Number(1))
    console.log(Number(2))
    console.log(Number(0x8d))
    console.log('如果是null,返回0')
    console.log(Number(null))
    console.log('如果是undefined,返回NaN')
    console.log(Number(undefined))
    console.log('如果是字符串,则:1如果字符串中只包含数字,则将其转换为十进制(忽略前导0)')
    console.log(Number('01234'))
    console.log('如果是字符串,则:2如果字符串中包含有效的浮点格式,将其转换为浮点数值(忽略前导0)')
    console.log(Number('.1234'))
    console.log('如果是字符串,则:3如果是空字符串,将其转换为0')
    console.log(Number(''))
    console.log('如果是字符串,则:4如果字符串中包含非以上格式,则将其转换为NaN')
    console.log(Number('b.1234'))
    console.log('===========================')
    console.log('如果是对象,则调用对象的valueOf()方法,然后依据前面的规则转换返回的值。如果转换的结果是NaN,则调用对象的toString()方法,再次依照前面的规则转换返回的字符串值')
    console.log('===========================')
    console.log('测一下valueOf')
    console.log('Array')
    console.log([1,2,3,4,5,6].valueOf())
    console.log(typeof [1,2,3,4,5,6].valueOf())
    console.log((new Array(1,2,3,4,5)).valueOf())
    console.log([1,2,3,4,5,6].toString())
    console.log('Boolean')
    console.log(Boolean(true).valueOf())
    console.log(typeof Boolean(true).valueOf())
    console.log('Date')
    console.log((new Date()).getDate().valueOf())
    console.log('getTime')
    console.log((new Date()).getTime().valueOf())
    console.log('Function')
    function mytest(){var ss=1}
    console.log(mytest.valueOf())
    console.log("typeof:"+typeof mytest.valueOf())
    console.log('Number')
    console.log(Number(5).valueOf())
    console.log('parseInt(string, radix)函数,将字符串转换为整数类型的数值。它也有一定的规则')
    console.log('忽略字符串前面的空格,直至找到第一个非空字符')
    console.log(parseInt('                    1'))
    console.log('如果第一个字符不是数字符号或者负号,返回NaN')
    console.log(parseInt('                    -'))
    console.log(parseInt('                    -1'))
    console.log(parseInt('                    d'))
    console.log('如果第一个字符是数字,则继续解析直至字符串解析完毕或者遇到一个非数字符号为止')
    console.log(parseInt('                    123ddddd'))
    console.log('如果上步解析的结果以0开头,则将其当作八进制来解析;如果以0x开头,则将其当作十六进制来解析')
    console.log(parseInt('                    077'))
    console.log(parseInt('                    077',8))
    console.log(parseInt('                    09'))
    console.log(parseInt('                    0xa'))
    console.log('parseInt 和 Number 会忽略所有前导0 除了16禁止0xa  另外js应该没有8进制文本表示')
    console.log(parseInt('                    xa'))
    console.log(parseInt('                    0xa'))
    console.log(parseInt('                    066'))
    console.log(Number('                    066'))
    console.log('parseInt 比 Number 多了个 如果第一个字符是数字,则继续解析直至字符串解析完毕或者遇到一个非数字符号为止')
    function a(){var ss=1}
    console.log(a.toString())
    console.log(typeof a.toString())
    console.log('==')
    console.log([1,2].valueOf().toString())
    console.log(Number([1,2]))
    console.log(parseInt([1,2]))
    console.log(Number('9a'))
    console.log(parseInt('9a'))
    console.log('==================================')
    console.log('逻辑操作符(!、&&、||)')
    console.log('逻辑与(&&)操作符,如果一个操作值不是布尔值时,遵循以下规则进行转换')
    console.log('如果第一个操作数经Boolean()转换后为true,则返回第二个操作值,否则返回第一个值(不是Boolean()转换后的值)')
    console.log('0&&1'+0&&1)
    console.log('1&&0'+1&&0)
    console.log('如果有一个操作值为null,返回null')
    console.log('null&&1:'+(null&&1))
    console.log('如果有一个操作值为NaN,返回NaN')
    console.log('NaN&&1:'+(NaN&&1))
    console.log('如果有一个操作值为undefined,返回undefined')
    console.log('undefined&&1:'+(undefined&&1))
    console.log('加好的优先级 要比&& 高')
    console.log('逻辑或(||)操作符,如果一个操作值不是布尔值,遵循以下规则')
    console.log('如果第一个操作值经Boolean()转换后为false,则返回第二个操作值,否则返回第一个操作值(不是Boolean()转换后的值)')

    console.log('0||1:'+(0||1))
    console.log('1||0:'+(1||0))
    console.log('对于undefined、null和NaN的处理规则与逻辑与(&&)相反')
    console.log('null||1:'+(null||1))
    console.log('如果有一个操作值为NaN,返回第二个')
    console.log('NaN||1:'+(NaN||1))
    console.log('如果有一个操作值为undefined,返回第二个')
    console.log('undefined||1:'+(undefined||1))
test
相关文章
|
1月前
|
JavaScript 前端开发 开发者
VUE 开发——Node.js学习(一)
VUE 开发——Node.js学习(一)
70 3
|
2月前
|
JavaScript
ES6学习(9)js中的new实现
ES6学习(9)js中的new实现
|
6天前
|
存储 JavaScript 前端开发
JavaScript学习第一章
本文档介绍了JavaScript的基础知识,包括其在网页中的作用、如何通过JavaScript动态设置HTML元素的CSS属性,以及JavaScript中的变量类型(`var`、`let`、`const`)和数据类型(基本数据类型与引用数据类型)。通过实例代码详细解释了JavaScript的核心概念,适合初学者入门学习。
|
1月前
|
JavaScript
js学习--制作猜数字
js学习--制作猜数字
38 4
js学习--制作猜数字
|
1月前
|
JavaScript
webpack学习五:webpack的配置文件webpack.config.js分离,分离成开发环境配置文件和生产环境配置文件
这篇文章介绍了如何将webpack的配置文件分离成开发环境和生产环境的配置文件,以提高打包效率。
48 1
webpack学习五:webpack的配置文件webpack.config.js分离,分离成开发环境配置文件和生产环境配置文件
|
2月前
|
算法 JavaScript 前端开发
第一个算法项目 | JS实现并查集迷宫算法Demo学习
本文是关于使用JavaScript实现并查集迷宫算法的中国象棋demo的学习记录,包括项目运行方法、知识点梳理、代码赏析以及相关CSS样式表文件的介绍。
第一个算法项目 | JS实现并查集迷宫算法Demo学习
|
2月前
|
JavaScript 前端开发 API
紧跟月影大佬的步伐,一起来学习如何写好JS(上)
该文章跟随月影老师的指导,探讨了编写优质JavaScript代码的三大原则:各司其职、组件封装与过程抽象,通过具体示例讲解了如何在实际开发中应用这些原则以提高代码质量和可维护性。
紧跟月影大佬的步伐,一起来学习如何写好JS(上)
|
1月前
|
JavaScript
js学习--制作选项卡
js学习--制作选项卡
37 4
|
1月前
|
JavaScript
js学习--商品列表商品详情
js学习--商品列表商品详情
20 2
|
1月前
|
JavaScript
js学习--九宫格抽奖
js学习--九宫格抽奖
18 2
下一篇
无影云桌面