基本数据类型之undefined和null

undefined是表示未找到,是变量没有正确赋值数据时,生成的数据类型

var int ; console.log(int)//undefined

null 是空表示赋值存储的数据,是一个空数据,是一种特殊的数据类型 给变量直接赋值null注意英文字母必须小写

var res = null;console.log(res) //null

null 是一种数值,表示空的数值

undefined是没有被正确赋值

  在JavaScript中,没有定义变量存储数据类型的种类,一个变量中可以存储任意的数据类型
            var int = 100;  存储整数类型
            int = '北京';   存储字符串类型
            int = true;     存储布尔类型
            因为JavaScript中不限制变量存储数据的数据类型,因此一个变量可以存储任意的数据类型
        但是在JavaScript中,执行程序时,有时需要指定的数据类型参与程序的执行
        其他数据类型,原则上,不允许参与程序的执行
        此时就需要将变量中的数据类型,转化为指定的数据类型
        举例:
            例如我们现在的银行账户中存储的都是 人民币 
            但是你要出国,去了 美国 , 消费时,必须使用 美元
            你要是超过,去了 欧洲 , 消费时,必须使用 欧元
            总之,你去哪儿,就要兑换成当地的 币种
            就好像我们在某个程序执行时,必须要将变量中存储的数据,转换为指定的数据类型
        在计算机语言中,数据类型的转化,分为两种形式
            自动转换 : 计算机程序执行时,自动完成的转化
                      有的银联卡,你存储的是人民币,当你要消费美金时
                      会自动将人民币转化为美金来进行结算
                      这个转化是银行自动完成的,不需要我们人为参与
            强制转化 : 程序员人为的将数据类型转化为指定的数据类型
                       我们拿着钱,去银行柜台,兑换成我们指定的币种
 // 其他数据类型,自动转化为布尔类型
        // 在 if 判断语句执行时,其他数据类型会自动转化为布尔类型
        // 因为 在 if 语句中 ( ) 中 理论上只接受布尔类型数值 true 或者 false
        // 如果输入了其他数据类型数据,会自动转化为布尔类型数据  true 或者 false
        // 例如   if(true或者false) 可以执行
        // 如果写 if('北京')   if('上海')  if(100)  不是类型类型的数据
        // 一定会先自动转化为布尔类型的数值,再去进行相应程序的执行
        // 其他数据类型转化为布尔类型的原则
        // 转化为false的情况 :  数值 0    空字符串 ''   undefined   null   NaN
        // 其他情况都转化为true
        // 特别注意: 0.0  0.000000 等 在转化为布尔类型时,都视为 数值 0 
   if( true / false){
                // 如果()中是true,执行第一个{}中的语句
                console.log('小括号里面写的是true');
            }else{
                // 如果()中是false,执行else后第二个{}中的语句
                console.log('小括号里面写的是false');
            }
        // if()中应该写 true 或者 false
        // 如果写其他数据类型
        // 会自动转化为 true 或者 false
        // 转化为 true 的执行 第一个{}中的程序代码
        // 转化为 false 的执行 else后{}中的程序代码
        if(0){
            console.log('转化为true');
        }else{
            // 执行输出这行代码,证明 0 转化为的是 false
            console.log('转化为false'); 
        }
        // 空字符串
        if(''){
            console.log('转化为true');
        }else{
            // 执行输出这行代码,证明 ''空字符串 转化为的是 false
            console.log('转化为false'); 
        }
        // undefined
        if(undefined){
            console.log('转化为true');
        }else{
            // 执行输出这行代码,证明 undefined 转化为的是 false
            console.log('转化为false'); 
        }
        // null
        if(null){
            console.log('转化为true');
        }else{
            // 执行输出这行代码,证明 null 转化为的是 false
            console.log('转化为false'); 
        }
        // NaN
        if(NaN){
            console.log('转化为true');
        }else{
            // 执行输出这行代码,证明 NaN 转化为的是 false
            console.log('转化为false'); 
        }
        // 0.000000
        if(0.000000){
            console.log('转化为true');
        }else{
            // 执行输出这行代码,证明 0.000000 转化为的是 false
            console.log('转化为false'); 
        }
        // 字符串 空格
        if(' '){
            // 执行输出这行代码,证明 ' '字符串空格  转化为的是 true
            console.log('转化为true');
        }else{
            console.log('转化为false'); 
        }
        // 数值 -1 
        if(-1){
            // 执行输出这行代码,证明 -1 转化为的是 true
            console.log('转化为true');
        }else{
            console.log('转化为false'); 
        }
        // 总结:
        // 1,只有5种情况是 false 
        //    数值0  包括 0  0.0   0.00000 等 
        //    空字符串 ''
        //    undefined
        //    null  
        //    NaN
        // 2,其他所有的情况,都会转化为 true

undefined和null js数据类型转换自动转换布尔类型的更多相关文章

  1. C语言:数据类型转换 自动转换 强制转换

    数据类型转换就是将数据(变量.数值.表达式的结果等)从一种类型转换为另一种类型. 自动类型转换 自动类型转换就是编译器默默地.隐式地.偷偷地进行的数据类型转换,这种转换不需要程序员干预,会自动发生.1 ...

  2. JS 数据类型转换

    JS 数据类型转换 方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把 ...

  3. JS数据类型转换

    JS 数据类型转换 方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把 ...

  4. JS 数据类型转换-转换函数、强制类型转换、利用js变量弱类型转换

    1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有对String类型调用这些方法,这两个函数才能正确运行:对其他类型 ...

  5. js笔记——js数据类型转换

    以下内容摘录自阮一峰的<语法概述 -- JavaScript 标准参考教程(alpha)>章节『数据类型转换』,以做备忘.更多内容请查看原文. JavaScript是一种动态类型语言,变量 ...

  6. JS 数据类型转换以其他

    JavaScript 是一种弱类型的语言,也就是没有类型限制,变量可以随时被赋予任意值. 同时,在程序运行过程中,类型会被自动确认的.因此,这就是涉及到数据的类型转换.在 JS 的世界中,数据类型转换 ...

  7. {}+[] = ? 和 []+{} = ? 浅谈JS数据类型转换

    参加公司技术嘉年华第一季(前端.服务端)的间隙,陈导问了我一个问题:{}+[] 和 []+{}两个表达式的值分别是什么?根据我的理解我觉得结果应该都是"[object Object]&quo ...

  8. JS数据类型转换问题

    一.数据类型的转换 数据类型的转换方法 强制转换(显示转换,主动转换) 字符转数值 parseInt(要转换的数值或变量) 转整数 从左向右依次转换,遇到第一个非数字的字符,停止转换 忽略小数点后的内 ...

  9. Java 04-基础 数据类型转换 自动类型转换+强制类型转换

    1.数据类型自动转换 规则1:如果一个操作数为double型,则整个表达式提示至double型 规则2:满足自动类型转换条件,   两种类型要兼容,数值类型(整数和浮点)相互兼容   目标类型取值大于 ...

  10. js数据类型转换 ----流程控制

    数据类型转换: //number转换成str // var str=a+''; // console.log(str); // console.log(typeof str); //转换成字符串了 v ...

随机推荐

  1. EasyNLP集成K-BERT算法,借助知识图谱实现更优Finetune

    导读 知识图谱(Knowledge Graph)的概念⾸次出现2012年,由Google提出,它作为⼀种⼤规模语义⽹络, 准确地描述了实体以及实体之间的关系.知识图谱最早应⽤于搜索引擎,⽤于准备返回⽤ ...

  2. Quick BI产品核心功能大图(四):Quick引擎加速--十亿数据亚秒级分析

    ​简介: 随着数字化进程的深入,数据应用的价值被越来越多的企业所重视.基于数据进行决策分析是应用价值体现的重要场景,不同行业和体量的公司广泛依赖BI产品制作报表.仪表板和数据门户,以此进行决策分析. ...

  3. 延迟绑定与retdlresolve

    延迟绑定与retdlresolve 我们以前在ret2libc的时候,我们泄露的libc地址是通过延迟绑定实现的,我们知道,在调用libc里面的函数时候,它会先通过plt表和gor表绑定到,函数真实地 ...

  4. [FAQ][Hardhat] Error HH501: Couldn't download compiler version 0.8.0. Please check your connection.

    当使用 npx hardhat compile 命令编译智能合约时,会先下载你在 hardhat.config.js 配置中对应版本的 solidity 编译器. 当网络不可达时,就会提示无法下载的错 ...

  5. [Go] 注意 go build -o <output> 选项的准确含义

    -o <output> 选项强制执行把构建的可执行文件写入到目标文件或者目标目录中. 如果 output 是已存在的目录,那么所有构建好的文件都将写入到该目录中. 注意:如果目录不存在的话 ...

  6. Region-区域(默认和新增)适配器

    Prism内置了几个区域适配器 ContentControlRegionAdapter ItemsControlRegionAdapter SelectorRegionAdapter ComboBox ...

  7. dotnet 记 TaskCompletionSource 的 SetException 可能将异常记录到 UnobservedTaskException 的问题

    本文将记录 dotnet 的一个已知问题,且是设计如此的问题.假定有一个 TaskCompletionSource 对象,此对象的 Task 没有被任何地方引用等待.在 TaskCompletionS ...

  8. dotnet core 和 .NET 5 不支持 Prefer32Bit 首选 32 位的功能

    我尝试在 dotnet core 和 dotnet 5 的应用上,右击项目属性,在生成界面勾选首选 32 位的功能,然而在 x64 下没有生成 PE32+ 的应用 这是 .NET Core 以及以上版 ...

  9. dotnet C# 只创建对象不调用构造函数方法

    有时我期望只是创建出对象,但是不要调用对象的构造方法,可以通过使用 FormatterServices 的 GetUninitializedObject 函数来实现只创建对象不调用构造函数方法 这个 ...

  10. kafka connect gui 可视化管理工具

    kafka connect gui 可视化管理工具 官网地址:http://www.redisant.cn/ka 连接到 Kafka Connect 支持各种认证方式,支持 SSL/TLS 安全连接 ...