JavaScript数据类型

JavaScript数据类型

javascript 复制代码
/*
        JavaScript是弱类型的语言,但是其中也存在数据类型,JavaScript的数据类型分为:原始类型和引用类型
        这点和Java很像,主要有如下类型:

        1.number            数字(整数、小数、NaN(Not a Number))
        2.string            字符串,建议使用双引号
        3.boolean           布尔类型:true、false
        4.null              对象为空
        5.undefined         当声明的变量没有初始化时,该变量的默认值是undefined
*/
    /* 原始数据类型 */
    // alert(typeof 3); //number
    // alert(typeof 3.14); //number

    // alert(typeof "A"); //string
    // alert(typeof 'Hello');//string

    // alert(typeof true); //boolean
    // alert(typeof false);//boolean

    // alert(typeof null); //object 

    // var a ;
    // alert(typeof a); //undefined

    /*
        JavaScript运算符
        JavaScript中的运算符几乎和Java中一模一样,除了==和==
    */

        /* 使用==比较时,虽然a、b的数据类型都不一样,但是==会进行类型转换,然后再进行比较
        所以说下列代码最终会输出true */
        // let a = 10;
        // let b = "10";
        // if (a == b) {
        //     alert("true");
        // } else{
        //     alert("false")
        // }

        // /* 使用===比较时,是严格的完全相等,若二者类型不一样,那么将直接返回false */
        // let x = 65;
        // let y = "A";
        // // 在 JavaScript 中,== 运算符会进行类型转换,但它并不会将字符串 "A" 转换为其 ASCII 值 65。
        // // 相反,它会尝试将数字 65 转换为字符串 "65",然后比较两个字符串 "65" 和 "A"。由于这两个字符串不相等,比较结果为 false。
        // alert(x==y); // false;
        // alert(x===y); // false;

        /*
            在JavaScript中,虽然是弱类型语言,但有时若涉及到数值计算,则需要类型转换
            parseInt()方法可以将其它类型的数据转换为number类型
        */
        alert(parseInt("12")) // 转化后得到数字12
        alert(parseInt("12A13")) // 转化后得到12,因为parseInt方法会从第一个非数字的地方截断
        alert(parseInt("A123")) // 转化后得到非数字NaN,因为从第一个非数字直接阶段,无法转化任何数据


        /*
            在JavaScript中------------0、null、undefined、NaN都等价于false;反之则等价于true
         */

        if(0) {
            alert("0 is true")
        } else {
            alert("0 is false");
        }

        if (null) {
            alert("null is true");
        } else {
            alert("null is false");
        }

        if(undefined) {
            alert("undefined is true");
        } else {
            alert("undefined is false");
        }

        if(NaN) {
            alert("NaN is true");
        } else {
            alert("NaN is false");
        }


        
相关推荐
缓慢更新28 分钟前
AI 辅助生成单测:从接口定义到用例的流水线
java·服务器·前端·网络·数据库·人工智能
超级架构师39 分钟前
PRAXO-CORE 2.5.0:用 conformance 和显式边界构建 Go Agent 框架
开发语言·人工智能·后端·golang·ai编程·智能体框架·praxo-core
陈随易1 小时前
AI 运维服务器,安全又可靠的方法
前端·后端·程序员
叼烟扛炮1 小时前
Linux 学习笔记(四十三):网络编程进阶——自定义协议解决 TCP 粘包与守护进程
linux·开发语言·网络·笔记·tcp/ip
风骏时光牛马2 小时前
AI稳定性治理体系构建与疑难问题深度分析
前端
LMT流氓兔2 小时前
第五单元——第十六课:给书店助手加上网页界面
java·开发语言·jvm·人工智能·oracle·langchain·1024程序员节
专注仿真2 小时前
梯度提升类(XFBoost)算法详解与代码实例
开发语言·人工智能·python·算法·大模型训练·控制算法
外收内放2 小时前
Python基础语法练习题(75)
开发语言·python·学习
IT_陈寒2 小时前
JavaScript的this坑人实录,这次我真的记下来了
前端·人工智能·后端
starzy19903 小时前
Scala循环与判断:一切皆表达式的控制流
开发语言·人工智能·scala