JS变量和数据类型及其转化

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
// 字面量就是常量,不可变的量
// 变量,用var 声明变量
 // JS底层保存标识符实际上采用的是Unicode编码,所以理论上所有utf-8的内容都可以用作标识符
// 也就是中文也可以当做标识符
        var 年龄=18;
数据类型是字面量的类型  变量可以为任何类型
        JS中有6中类型
            基本数据类型:
                String
                        var str="hello world"; //支持转义字符
                Number   整数+浮点数
                        整数运算可以基本保证正确
                        浮点数运算会存在误差,不要对精确要求比较高的运算
                        var a=123; 数值
                        var b ="123"; 字符串
                        console.log(typeof a); //检查数据类型
                        console.log(typeof b);
                        超过最大值,则是Infinity
                        var c = Infinity; //正无 穷
                        var d =NaN; //NaN是一个特殊数值, Not a Number
                        var e = 123+"233";
                        console.log(typeof Infinity); //Number
                        console.log(typeof e); //NaN
                        console.log(Number.MAX_VALUE); 1.797336565e+308 最大正数
                        console.log(Number.MIN_VALUE); 5e-324 最小正数
                Boolean
                Null:空对象 object  Remember that null means “no value”,
                Undefined: 未定义变量,声明了变量但未赋值
            引用数据类型:
                Object
        强制类型转换
1。转换成String var a=123; var b =true; 方法1: var c = a.toString(); //调用Number类型变量a的toSting方法,返回它相应的字符串 var d = b.toString(); //调用boolean类型变量b的toSting方法,返回它相应的字符串 null和undefined没有toString方法 var a = null; var c = a.toString() 会报错 var a = undefined; var c = a.toString() 会报错 方法2: 调用String函数,对Number、Boolean,Undefined,NULL都适用 var c = String(a); //c是字符串类型,a是Number 调用String的底层原理: 对于Number,Boolean底层调用的是toString() 对于Undefined和NUll底层直接将其转成"undefined","null"
            方法3:
            res = null + ""; "null" 任何值加一个空串即可转换成字符串,底层是String()函数实现
2.转换成Number 方法1: 适用Number()函数 字符串 => 数字 1.字符数字字符串直接转换成数字 "123" => 123 2.非字符数字字符串转换成NaN "22adf" => NaN 3.空串或者空格串转换成 0 " " => 0 Boolean => 0, 1 Null => 0 Undefined => NaN; 方法2: parseInt() 把一个字符串中有效数字转换为整数,从左至右 parseFloat() 把一个字符串中有效数字转换为浮点数 var a = "123px"; a = parseInt(a); 从头到尾取整数 对于非String类型的数据使用parseInt()操作时,会先把非String字符串,转成字符串再操作, 例如: var a = true; a = parseInt(a); 此时a的类型是NaN,此句等价于 parseInt("true")
            方法3:、
              
   任何值做 - * / 运算都会转成Number,利用这个可以做隐式类型转换
                var a = '123'; a = a -0; 此时a就变成数字了,底层原理和Number()函数实现
            方法4:
                
对于非Number值可以使用+将其转换成Number,- 也可以,不过会改变其值
                var a = '123'; a = +a; 此时a就变成数字了,底层原理和Number()函数实现
 
                16进制 0x开头 
                8进制 0开头
                 2进制 0b开头 某些浏览器不支持
              
var a = "070"; a = parseInt(a);
              某些浏览器会把a解析成8进制数,某些浏览器会把a解析成10进制数
              可以在parseInt()加上第二个参数,指定其进制
                a
= parseInt(a, 8); 所有浏览器都用8进制解析
JavaScript knows  
how to convert the string “4” to the  
number 4 when it needs to
3、转换成Boolean 调用Boolean()
               数字
=> 布尔 0和NaN是false,其他数据都是true var a =123; a = Boolean(a) 字符串 => 布尔 空串是false,其他非空字符串是true (包含空格串) null和undefined => false; object => true
           方式二(隐式类型转换):    
                - 为任意的数据类型做两次非运算,即可将其转换为布尔值
                - 例子:    
                    var a = "hello";
                    a = !!a; //true
</script> </head> <body> </body> </html>

 

posted @ 2019-08-31 11:40  Coding_Changes_LIfe  阅读(1711)  评论(0编辑  收藏  举报