基本数据类型之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. .netcore 使用Quartz定时任务

    这是一个使用 .NET Core 和 Quartz.NET 实现定时任务的完整示例.首先确保已经安装了 .NET Core SDK.接下来按照以下步骤创建一个新的控制台应用程序并设置定时任务: 创建一 ...

  2. Django框架——ORM执行SQL语句、神奇的双下划线、外键字段的创建、跨表查询、进阶操作

    ORM执行SQL语句 有时候ORM的操作效率可能偏低 我们是可以自己编写SQL的 方式一: models.User.objects.raw('select * from app01_user') 方式 ...

  3. 对象数组(java)

    如果程序需要某个类的若干个对象,例如Student类的10个对象,显然如下声明10个Student对象是不可取的: Student stul, stu2, stu3, stu4, stu5, stu6 ...

  4. 一些奇奇怪怪的js知识

    0.关于前端为什么typeof null 得到的结果是 object 对于 null 来说,很多人会认为他是个对象类型,其实这是错误的. 虽然 `typeof null` 会输出 `object`,但 ...

  5. WPF/C#:如何显示具有层级关系的数据

    前言 比方说我们有以下两个类: public class Class { public string? Name { get; set; } public List<Student>? S ...

  6. 第五課-Channel Study TCP Listener & Web Service Listener

    示例描述: 我们将研究如何获取相当常见的HL7 v2消息并将其映射到自定义Web Service接口服务.在许多实际情况下,当我们要连接到HIE,EMPI,数据仓库或数据存储库时,必须这样做.此用例说 ...

  7. 力扣239(Java)- 滑动窗口最大值(困难)

    题目: 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧.你只可以看到在滑动窗口内的 k 个数字.滑动窗口每次只向右移动一位. 返回 滑动窗口中的最大值 . 示 ...

  8. 日处理数据量超10亿:友信金服基于Flink构建实时用户画像系统的实践

    导读:当今生活节奏日益加快,企业面对不断增加的海量信息,其信息筛选和处理效率低下的困扰与日俱增.由于用户营销不够细化,企业 App 中许多不合时宜或不合偏好的消息推送很大程度上影响了用户体验,甚至引发 ...

  9. Java Agent 踩坑之 appendToSystemClassLoaderSearch 问题

    简介: 从 Java Agent 报错开始,到 JVM 原理,到 glibc 线程安全,再到 pthread tls,逐步探究 Java Agent 诡异报错. 作者:鲁严波   从 Java Age ...

  10. 云原生时代 RocketMQ 运维管控的利器 - RocketMQ Operator

    作者 | 刘睿.杜恒 导读:RocketMQ Operator 现已加入 OperatorHub,正式进入 Operator 社区.本文将从实践出发,结合案例来说明,如何通过 RocketMQ Ope ...