js基础面试高频面点2:Javascript中undefined和not defined有什么区别?

二、Javascript中undefined和not defined有什么区别?

  一句话:udefined为变量正常的数据类型,不是报错,而not defined是指变量没有定义,是报错。

  那么,什么是数据类型?js中数据类型有哪些?

  数据类型在数据结构中的定义是一组性质相同的值的集合以及定义在这个值集合上的一组操作的总称

  js中变量的数据类型有:

    值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。

    引用数据类型:对象(Object)、数组(Array)、函数(Function)。

    

    

    这个结果说明:

    1、数组和对象的类型都是object。

    2、用typeof只能检测出null为object。

    什么意思呢?

    null是什么东西?是值还是数据类型?什么值的数据类型是null?null和undefine究竟有什么千丝万缕的联系?

    在下认为:null可以是值,也可以是数据类型,null表示一个空对象的引用,对象的原型最终指向null。对于null的类型为object,这是js设计之初的历史  bug,可参考:http://2ality.com/2013/10/typeof-null.html,而null和undefined的值是相等的,但类型不同,所以:

    alert(null == undefined); // true
    alert(null === undefined); // false    

    补充:
    
    

  

原文地址:https://www.cnblogs.com/dancer0321/p/10846157.html

时间: 2024-10-16 11:53:02

js基础面试高频面点2:Javascript中undefined和not defined有什么区别?的相关文章

JS基础知识回顾:在HTML中使用JavaScript

想HTML页面中插入JavaScript的主要方法就是使用<script>元素. HTML4.01当中为<script>元素定义了下列6个属性: language(已废弃):原来用于表示编写代码使用的脚本语言,如JavaScript.JavaScript1.2.VBScript等,由于大多数浏览器会忽略此属性,因此就没有必要再用了: type(可选):可以看成是language的替代属性,表示编写代码使用的脚本语言的内容类型,也被称作MIME类型,在未指定此属性的情况下会被默认为t

javascript中apply、call和bind的区别,容量理解,值得转!

a)  javascript中apply.call和bind的区别:http://www.cnblogs.com/cosiray/p/4512969.html b)  深入浅出 妙用Javascript中apply.call.bind   http://www.admin10000.com/document/6711.html ====================================================== 在JS中,这三者都是用来改变函数的this对象的指向的,他们

javascript中undefined和null的区别详解

一.问题的由来 永远不要直接使用undefined进行变量判断使用字符串"undefined"对变量进行判断 这里,undefined是原始值,在JS中undefined出现只有两种情况,一种是变量未定义.一种是定义了变量,但是没有赋值. 如果这个地方person未定义,那么利用person===undefined全等判断就会报错,person未定义但是如果使用typeof来判断,那么就不会报错了. ep: alert(person == undefined);//报错 person

JavaScript中event的x,clientX,offsetX的区别

JavaScript中event的x,clientX,offsetX的区别 请看下面的文字说明,也就是event中x,clientX,offsetX,screenX的区别: x:设置或者是得到鼠标相对于目标事件的父元素的外边界在x坐标上的位置.www.mlybyby.com clientX:相对于客户区域的x坐标位置,不包括滚动条,就是正文区域. offsetx:设置或者是得到鼠标相对于目标事件的父元素的内边界在x坐标上的位置. screenX:相对于用户屏幕. 同时你可以对比下面代码分析 Cl

javascript中三目运算符和if else有什么区别

javascript中三目运算符和if else有什么区别今天写了一个图片轮播的小demo,用到了判断先试了一下if else,代码如下:if(n >= count-1){n =0;}else{n ++;}随后代码写完了,准备优化一下代码,将此段改成了三目运算符的写法n = n >= (count-1) ? n=0 : n++结果完全不同随后研究了一下这两者的区别,总结为一句话:三目运算有返回值,if else没有返回值做了如下测试:var n=1; if(n>1){ n=0;}else

JavaScript中undefined和null的区别

JavaScript中undefined和nullundefined:表示没有数值,在使用var 声明变量但未对其加以初始化时,这个变量的值就是undefined null:表示有数值,但是数值为“空”. 1. 两者的声明 声明但未定义:undefined; 1 var a; 2 console.log(a); // 执行结果:undefined 声明且定义为null; 1 var b = null; 2 console.log(b); //执行结果:null 2. typeof类型不同 und

js基础篇——call/apply、arguments、undefined/null

a.call和apply方法详解 call方法: 语法:call([thisObj[,arg1[, arg2[,   [,.argN]]]]]) 定义:调用一个对象的一个方法,以另一个对象替换当前对象. 说明: call 方法可以用来代替另一个对象调用一个方法.call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象.如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj. apply方法: 语法:apply([thisObj[,ar

JavaScript 中undefined,null,NaN的区别

1.类型分析: js中的数据类型有undefined,boolean,number,string,object等5种,前4种为原始类型,第5种为引用类型.var a1;var a2 = true;var a3 = 1;var a4 = "Hello";var a5 = new Object();var a6 = null;var a7 = NaN;var a8 = undefined;alert(typeof a); //显示"undefined"alert(typ

javascript中函数声明和函数表达式的区别

1.js中函数表达式的定义 表达式(expression)JavaScript中的一个短语,javascript会将其计算(evaluate)出一个结果.程序中的常量是一个最简单的表达式.变量名也是一种简单的表达式,它的值就是赋值给变量的值.复杂表达式是由简单表达式组成. --摘自<javascript权威指南> 一个经典的函数表达式的定义方法: //函数表达式的声明,表达式的值就是这个新定义的函数 var expressFunc = function(){}; 函数名称是函数声明语句必须得部