• jacascript 基础数据类型(一)


    前言:这是笔者学习之后自己的理解与整理。如果有错误或者疑问的地方,请大家指正,我会持续更新!

      数据类型有 number、boolean、string、object、null、undefined;

    undefined 和 null

      undefined 字面理解为未定义(但是已经声明了);

      undefined 和 null 都是没找到的意思,undefined 是没找到原生数据,null 是没找到对象;

      可以将变量的值设置为 null 来清空数据;

      字面解释很无力啊,看代码吧;

            <script type="text/javascript">
                var a;//a已经声明了,但没有值,是空的;
                console.log(a);//undefined
                
                //b没有声明
    //            console.log(b);//b is not defined;这一行报错,后面代码无法运行,故注释掉
                
                var c;//c已经声明了,但没有值,是空的;
                c = "rose";//c赋值"rose";
                console.log(c);//rose
                
                var d = 'jack';//d声明并且赋值"jack";
                var d;//再次声明d,但没有进行赋值,d的值不会发生改变;
                console.log(d);//jack
                
                var d = null; //清空d值;
                console.log(d);//null
                
                var e = {name:'lucy',age:'girl'}
                console.log(e.sex);//undefined
                
                var f = document.getElementsByTagName('div');
                console.log(f);//[],返回的是一个对象集合,以数组展示
                
                var g = document.getElementsByTagName('div')[0];
                console.log(g);//undefined,数组是原生数据,所以没找到的话,返回undefined
                
                var h = document.getElementById('test');
                console.log(h);//null,对象没找到,返回null
                
                console.log(typeof undefined) ;//undefined
                console.log(typeof null) ;//object
                console.log(undefined === null);//false
                console.log(undefined == null);//true
            </script>

    number

      var a = 075;   8 进制数字必须以 0 为前导;

      var a = 0xA; 16 进制数字必须以 0x 为前导;

      NaN,非法运算,(not a number);

      判断是不是一个数字,isNaN();

            <script type="text/javascript">
                console.log(isNaN(123)); //false
                console.log(isNaN('aaa')); //true
                console.log(isNaN(-567)); //false
                console.log(isNaN(56.7)); //false
                
                console.log(isNaN(aaa123)); //aaa123 is not defined 
                console.log(isNaN(bbb)); //bbb is not defined 
                
    //            console.log(isNaN(-56a7)); //missing ) after argument list,这一行要注释掉,不然之前代码没法运行,
            </script>

      数值转换,parseInt 把其他类型转换成整数(忽略小数点以后的数字);parseFloat 是把其他类型转换为浮点数(第二个小数点无效);

      parseInt 会忽略前面的空格(后面的空格不会忽略);

    • 如果第一个不是数字的字符,则返回 NaN;
    • 如果第一个字符是数值(非0),则会继续往后解析,直到解析完数据或者遇到非数值字符;
    • 如果第一个字符是0,则又分为数值转换数值和字符串转换数值,请看下面代码中最后几行;
    • parseInt 可以转换二进制、八进制、16进制,最好传入第二个基数当做基值;
            <script type="text/javascript">
                console.log(parseInt(123.4));//123
                console.log(parseInt(-45.6));//-45
                console.log(parseInt('-34.567.89'));//-34
                console.log(parseInt('567.89'));//567
                console.log(parseInt('567.89.10'));//5670
                console.log(parseInt('910abc456'));//910
                console.log(parseInt('9 10abc456'));//9
                console.log(parseInt('abc456'));//NaN
                console.log(parseInt(''));//NaN
                console.log(parseInt(12+'0.3.4'));//120
                console.log(parseInt('0abc.567.89'));//0
                console.log(parseInt('0123.1abc456'));//123
                console.log(parseInt(0.123));//0
                console.log(parseInt(0+'abc'));//0
                console.log(parseInt(0123));//83;转换成8进制了
                console.log(parseInt(1011101,2));//83;转换成8进制了
                console.log(parseInt(0123,16));//131;转换成16进制了
                console.log(parseInt('0123',16));//291;转换成16进制了
    //            console.log(parseInt(0abc));//missing ) after argument list,这一行要注释掉,不然之前代码没法运行
    //            console.log(parseInt(0'abc'));//missing ) after argument list,这一行要注释掉,不然之前代码没法运行
    //            console.log(parseInt(012.3));//missing ) after argument list,这一行要注释掉,不然之前代码没法运行
    //            console.log(parseInt(12'3.4'));//missing ) after argument list,这一行要注释掉,不然之前代码没法运行
            </script>

      parseFloat 会忽略前面的空格(后面的空格不会忽略),

    • 如果第一个不是数字的字符,则返回 NaN;
    • 如果第一个字符是数值(非0),则会继续往后解析,知道解析完数据或者遇到无效的浮点数为止(第一个小数点有效,第二个小数点无效);
    • 如果第一个字符是0,则又分为数值转换数值和字符串转换数值,请看下面代码中最后几行;
    • parseFloat 只能解析十进制数;
            <script type="text/javascript">
                console.log(parseFloat(123.4));//123.4
                console.log(parseFloat(-45.6));//-45.6
                console.log(parseFloat('-34.567.89'));//-34.567
                console.log(parseFloat('567.89'));//567.89
                console.log(parseFloat('567.89.10'));//567.89
                console.log(parseFloat('910abc456'));//910
                console.log(parseFloat('9. 12abc456'));//9
                console.log(parseFloat('9.1 2abc456'));//9.1
                console.log(parseFloat('abc456.123'));//NaN
                console.log(parseFloat(''));//NaN
                console.log(parseFloat(12+'0.3.4'));//120.3
                console.log(parseFloat('0.23abc.567.89'));//0.23
                console.log(parseFloat('00123.1abc456'));//123.1
                console.log(parseFloat(0.123));//0.123
                console.log(parseFloat(0+'012.34abc'));//12.34
    //            console.log(parseFloat(0abc));//missing ) after argument list,这一行要注释掉,不然之前代码没法运行
    //            console.log(parseFloat(0'abc'));//missing ) after argument list,这一行要注释掉,不然之前代码没法运行
    //            console.log(parseFloat(00.123));//missing ) after argument list,这一行要注释掉,不然之前代码没法运行
    //            console.log(parseFloat(012.3));//missing ) after argument list,这一行要注释掉,不然之前代码没法运行
    //            console.log(parseFloat(12'3.4'));//missing ) after argument list,这一行要注释掉,不然之前代码没法运行
            </script>
    • numberObject.toFixed(num); 保留 num 位小数并四舍五入;
    • 返回字符串
    • num 在 [0,20] 之间;
            <script type="text/javascript">
                var num = 3.14159265358;
                console.log(num.toFixed(0))//3
                console.log(num.toFixed(1))//3.1
                console.log(num.toFixed(3))//3.142
            </script>

    object

      JavaScript 中的所有事物都可以理解为对象:字符串、数值、数组、函数...

      对象是拥有属性和方法的数据;

      对象是变量的容器;

      对象的方法定义了一个函数,并作为对象的属性存储。对象方法通过添加 () 调用 (作为一个函数)。

      访问对象的属性有两种方法 obj.property 或 obj["property"];

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <body>
            <div class="test1"></div>
            <div class="test2"></div>
            
            <script type="text/javascript">
                var person = {
                    firstName:'Zhang',
                    lastName:'San',
                    fullName:function (){
                        return this.firstName + '' +this.lastName;
                    }
                }
                var test1 = document.getElementsByClassName('test1')[0];
                var test2 = document.getElementsByClassName('test2')[0];
                test1.innerHTML = '函数没加括号,输出函数表达式:' + person.fullName;
                test2.innerHTML = '函数加括号了,输出函数返回结果:' + person.fullName();
            </script>
        </body>
    </html>
  • 相关阅读:
    vue jsx 使用指南
    学习typescript(二)
    callback, promise, co/yield, async/await 大混战
    学习typescript(一)
    # bug 查找 (一) 快速记录 IE8 下三个问题
    ShiWangMeSDK Android版接口文档 0.2.0 版
    RbbitMQ基础知识
    SpringMVC集成rabbitMQ
    使用pinyin4j汉字转pinyin
    Maven依赖调解
  • 原文地址:https://www.cnblogs.com/sspeng/p/6533837.html
Copyright © 2020-2023  润新知