• (五)JavaScript之[类型转换]


      1 /**
      2  * 类型转换
      3  *
      4  * JavaScript 数据类型
      5  * 1.不同的数据类型
      6  * string
      7  * number
      8  * object
      9  * boolean
     10  * function
     11  *
     12  * 2.对象类型
     13  * Object
     14  * Date
     15  * Array
     16  *
     17  * 3.不包含任何值的数据类型
     18  * null
     19  * undefined
     20  *
     21  * typeof操作符查看JS的数据类型
     22  *
     23  * constructor(构造器)属性
     24  * */
     25 
     26 console.log(typeof('John'));//string
     27 console.log(typeof(3.14));//number
     28 console.log(typeof(NaN));//number
     29 console.log(typeof(false));//boolean
     30 console.log(typeof([1,2,3,4]));//object,数组也是一种对象
     31 console.log(typeof({name: 'John', age:34}));//object
     32 console.log(typeof(new Date()));//object
     33 console.log(typeof(function () {}));//function
     34 console.log(typeof(myCar));//undefined
     35 console.log(typeof(null));//object,null是一个空对象
     36 
     37 /**
     38  请注意:
     39  NaN 的数据类型是 number
     40  数组(Array)的数据类型是 object
     41  日期(Date)的数据类型为 object
     42  null 的数据类型是 object
     43  未定义变量的数据类型为 undefined
     44  */
     45 
     46 //如果对象是Array或Date,就无法用typeof来判断它们的类型,因为都是返回object
     47 
     48 /**constructor(构造器)属性*/
     49 //constructor 属性返回所有JavaScript变量的构造函数
     50 console.log('John'.constructor);//function String() { [native code] }
     51 console.log((3.14).constructor);//function Number() { [native code] }
     52 console.log(false.constructor);//function Boolean() { [native code] }
     53 console.log([1,2,3,4].constructor);//function Array() { [native code] }
     54 console.log({name: 'John', age: 34}.constructor);//function Object() { [native code] }
     55 console.log(new Date().constructor);//function Date() { [native code] }
     56 console.log(function () {}.constructor);//function Function() { [native code] }
     57 
     58 //使用constructor属性查看对象是否为数组或日期
     59 function isArray(arr) {
     60     return arr.constructor.toString().indexOf('Array') > -1;
     61 }
     62 
     63 
     64 function isDate(date) {
     65     return date.constructor.toString().indexOf('Date') > -1;
     66 }
     67 
     68 console.log(isArray([1,2,3]));//true
     69 console.log(isArray('456'));//false
     70 
     71 console.log(isDate(new Date()));//true
     72 console.log(isDate('vvv'));//false
     73 
     74 //数字转化为字符串
     75 //String(myNumber) 全局方法
     76 //myNumber.toString() Number对象方法
     77 //更多的Number对象方法:http://www.runoob.com/jsref/jsref-obj-number.html
     78 console.log(typeof(String(123)));//string
     79 console.log(typeof((100 + 23).toString()));//string
     80 
     81 //将布尔值转换为字符串
     82 String(false);
     83 String(true);
     84 
     85 false.toString();
     86 true.toString();
     87 
     88 //将日期转换为字符串
     89 //在 Date 方法 中,你可以查看更多关于日期转换为字符串的函数
     90 //Date方法:http://www.runoob.com/jsref/jsref-obj-date.html
     91 console.log(String(Date()));//Tue Mar 29 2016 23:11:01 GMT+0800 (中国标准时间)
     92 console.log(Date().toString());//Tue Mar 29 2016 23:11:25 GMT+0800 (中国标准时间)
     93 
     94 //将字符串转换为数字
     95 //全局方法Number()
     96 //在 Number 方法 中,你可以查看到更多关于字符串转为数字的方法
     97 //Number方法:http://www.runoob.com/jsref/jsref-obj-number.html
     98 console.log(Number('3.14'));//3.14
     99 console.log(Number(" "));//0
    100 console.log(Number(""));//0
    101 console.log(Number('99 88'));//NaN
    102 
    103 //一元运算符+
    104 var y = '5';
    105 console.log(typeof(+y));//number
    106 
    107 //如果不能转换,它仍然会是一个数字,但值为NaN
    108 var z = 'John';
    109 console.log(typeof(+z));//number
    110 console.log(+z);//NaN
    111 
    112 //将布尔值转换为数字
    113 console.log(Number(false));//0
    114 console.log(Number(true));//1
    115 
    116 //将日期转换为数字
    117 console.log(Number(new Date()));//1459265021379
    118 console.log(Number(new Date().getTime()));//1459265068371
    119 
    120 //自动转换类型 Type Conversion
    121 //当 JavaScript 尝试操作一个 "错误" 的数据类型时,会自动转换为 "正确" 的数据类型。
    122 console.log(5 + null);//5, null为0
    123 console.log('5' + null);//5null
    124 console.log('5' + 1);//51
    125 console.log('5' - 1);//4
    126 
    127 //当你尝试输出一个对象或一个变量时 JavaScript 会自动调用变量的 toString() 方法:
    128 document.getElementById("demo").innerHTML = myVar;
    129 
    130 // if myVar = {name:"Fjohn"}  // toString 转换为 "[object Object]"
    131 // if myVar = [1,2,3,4]       // toString 转换为 "1,2,3,4"
    132 // if myVar = new Date()      // toString 转换为 "Fri Jul 18 2014 09:08:55 GMT+0200"
    133 //数字和布尔值也经常相互转换:
    134 // if myVar = 123             // toString 转换为 "123"
    135 // if myVar = true            // toString 转换为 "true"
    136 // if myVar = false           // toString 转换为 "false"
  • 相关阅读:
    HDU 4832(DP+计数问题)
    mongodb安装与使用
    (hdu step 6.3.7)Cat vs. Dog(当施工方规则:建边当观众和其他观众最喜爱的东西冲突,求最大独立集)
    dba_dependencies查询结果视图
    情绪一点点
    c#基于这些,你已经看到了?(一)-----谁才刚刚开始学习使用
    九. 200创业教训万元获得--“神刻”这是忽悠?
    初步swift语言学习笔记6(ARC-自己主动引用计数,内存管理)
    采用CSS3 Media Query技术适应Android平板屏幕分辨率和屏幕像素密度
    线程的上下文
  • 原文地址:https://www.cnblogs.com/lqcdsns/p/5335386.html
Copyright © 2020-2023  润新知