js笔记——js里的null和undefined

以下内容摘录自阮一峰的《语法概述 -- JavaScript 标准参考教程(alpha)》章节『5.null和undefined』,以做备忘。

null与undefined都可以表示“没有”,含义非常相似。目前null和undefined基本是同义的,只有一些细微的差别。

在if语句中,它们都会被自动转为false,null == undefined返回true

对于null和undefined,可以大致可以像下面这样理解。

null表示空值,即该处的值现在为空。典型用法是:

作为函数的参数,表示该函数的参数是一个没有任何内容的对象。
作为对象原型链的终点。

undefined表示不存在值,就是此处目前不存在任何值。典型用法是:

变量被声明了,但没有赋值时,就等于undefined。
调用函数时,应该提供的参数没有提供,该参数等于undefined。
对象没有赋值的属性,该属性的值为undefined。
函数没有返回值时,默认返回undefined。

在JavaScript里,条件判断语句中,下面六个值被转为false,其他值都视为true。

undefined
null
false
0
NaN
""(空字符串)

需要特别注意的是,空数组([])和空对象({})对应的布尔值,都是true。

时间: 2024-11-08 17:31:43

js笔记——js里的null和undefined的相关文章

js笔记——js里var与变量提升

var是否可以省略 一般情况下,是可以省略var的,但有两点值得注意: 1.var a=1 与 a=1 ,这两条语句一般情况下作用是一样的.但是前者不能用delete删除.不过,绝大多数情况下,这种差异是可以忽略的. 2.在函数内部,如果没有用var 进行申明,则创建的变量是全局变量,而不是局部变量了. 所以,建议变量申明加上var关键字. 变量提升 JavaScript引擎的工作方式是,先解析代码,获取所有被声明的变量,然后再一行一行地运行.这造成的结果,就是所有的变量的声明语句,都会被提升到

js判断空字符串、null、undefined、空格、中文空格

代码 function isEmpty(obj) { if (obj === null) return true; if (typeof obj === 'undefined') { return true; } if (typeof obj === 'string') { if (obj === "") { return true; } var reg = new RegExp("^([ ]+)|([ ]+)$"); return reg.test(obj); }

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

JavaScript是一种动态类型语言,变量是没有类型的,可以随时赋予任意值.但是,数据本身和各种运算是有类型的,因此运算时变量需要转换类型.大多数情况下,这种数据类型转换是自动的,但是有时也需要手动强制转换. 强制转换 强制转换主要指使用Number.String和Boolean三个构造函数,手动将各种类型的值,转换成数字.字符串或者布尔值. Number函数:强制转换成数值 使用Number函数,可以将任意类型的值转化成数字. (1)原始类型值的转换规则 数值:转换后还是原来的值. 字符串:

Javascript基础教程之比较null和undefined值_javascript技巧

JavaScript 中有两个特数值: undefined和null,在比较它们的时候需要留心.在读取未赋值的变量或试图读取对象没有的属性时得到的就是 undefined 值. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Learn4UndefinedAndNull</title> </head

JS中call/apply、arguments、undefined/null方法详解_javascript技巧

a.call和apply方法详解 -------------------------------------------------------------------------------- call方法: 语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 定义:调用一个对象的一个方法,以另一个对象替换当前对象. 说明: call 方法可以用来代替另一个对象调用一个方法.call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指

深入理解JS中的变量及作用域、undefined与null

 本篇文章主要是对JS中的变量及作用域.undefined与null进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助 Situation One   代码如下: <script> var i; //全局变量 //方法名是camel命名法 //方法里面的变量是局部变量   function sayHello(){ var x=100; alert(x); x++; } sayHello(); //输出100 alert(x); //报错,因为x是局部变量,访问不到 </scr

JS中判断null、undefined与NaN的方法

 这篇文章主要介绍了JS中判断null.undefined与NaN的方法,需要的朋友可以参考下 写了个 str ="s"++;  然后出现Nan,找了一会.  收集资料如下判断:  1.判断undefined:  代码如下: <span style="font-size: small;">var tmp = undefined;  if (typeof(tmp) == "undefined"){  alert("undefi

JS中判断null、undefined与NaN的方法_jquery

写了个 str ="s"++; 然后出现Nan,找了一会. 收集资料如下判断: 1.判断undefined: 复制代码 代码如下: <span style="font-size: small;">var tmp = undefined; if (typeof(tmp) == "undefined"){ alert("undefined"); }</span> 说明:typeof 返回的是字符串,有六种可

node.js笔记

第一章 用户在浏览器中输入 www.taobao.com 直到看到页面之间发生了什么?(浏览器的加载.解析.渲染过程)① 操作系统(windows)访问网络上DNS服务器,把域名转换为IP地址    DNS [www.taobao.com 60.28.242.250]② 浏览器向Web服务器发起HTTP请求③ web服务器接收并解析请求消息,查找指定资源,可能访问数据库,构建并返回http响应消息④ 浏览器接收并解析响应消息,发送请求获取嵌入在HTML中的资源(如图片.CSS.JS.视频.音频等