JavaScript中变量的有效性判断的例子

JavaScript 语言设计的不严谨,有时候很容易把人给搞晕,比如说这个变量有效性判断。

先举几个例子:

想要理解为什么得出上面的结果,首先得明白 undefined 和 null 在 JavaScript 中所表示的不同含义。

这里借用下阮一峰老师博客中的一个结论:

null和undefined基本是同义的,只有一些细微的差别。

null表示”没有对象”,即该处不应该有值。典型用法是:

(1) 作为函数的参数,表示该函数的参数不是对象。

(2) 作为对象原型链的终点。

undefined表示”缺少值”,就是此处应该有一个值,但是还没有定义。典型用法是:

(1)变量被声明了,但没有赋值时,就等于undefined。

(2) 调用函数时,应该提供的参数没有提供,该参数等于undefined。

(3)对象没有赋值的属性,该属性的值为undefined。

(4)函数没有返回值时,默认返回undefined。

在 Java 中,if 条件中必须使用 boolean 表达式, 所以使用 JavaScript 时,也会习惯性的认为如此。实际上,JavaScript 中 null,undefined,0,””,false 作为 if 的条件的时候,都被认为是 false 。

所以,在判断变量时,可以用以下几种方式:

1、精确判断一个变量是否为 undefined

2、精确判断一个变量是否为 null

3、判断一个变量是否为 null 或 undefined

4、判断值是否有效, 可以直接在if表达式中使用变量名称, 我常用来判断一个输入框值是否有效(注意: 如果变量值为0, 会被当作无效)

时间: 2024-09-28 02:32:52

JavaScript中变量的有效性判断的例子的相关文章

JavaScript中变量的有效性判断的方法

avaScript 语言设计的不严谨,有时候很容易把人给搞晕,比如说这个变量有效性判断. 先举几个例子: 想要理解为什么得出上面的结果,首先得明白 undefined 和 null 在 JavaScript 中所表示的不同含义. 这里借用下阮一峰老师博客中的一个结论: null和undefined基本是同义的,只有一些细微的差别. null表示"没有对象",即该处不应该有值.典型用法是: (1) 作为函数的参数,表示该函数的参数不是对象. (2) 作为对象原型链的终点. undefin

浅谈JavaScript中变量和函数声明的提升_javascript技巧

现象: 1. 在JavaScript中变量和函数的声明会提升到最顶部执行. 2. 函数的提升高于变量的提升. 3. 函数内部如果用var声明了相同名称的外部变量,函数将不再向上寻找. 4. 匿名函数不会提升. 5. 不同<script>块中的函数互不影响. 例子: 函数声明提升高于变量声明 //同时声明变量a和函数a var a; function a() {} alert(typeof a); //显示的是"function",初步证明function的优先级高于var.

JavaScript中变量声明有var和没var的区别

 本文来论述JavaScript中变量声明有var和没var的区别,关于Js中的变量声明的作用域是以函数为单位,所以我们经常见到避免全局变量污染的方法是 1 2 3 (function(){  // ...  })(); 在函数内部,有var和没var声明的变量是不一样的.有var声明的是局部变量,没var的,声明的全局变量,所以可以借此向外暴露接口东东. 在全局作用域内声明变量时,有var 和没var看起来都一样,我们知道,声明的全局变量,就是window的属性,究竟是否一样,我们通过ECMA

javascript-关于javaScript中变量的问题,本人初学的菜鸟,希望哪位高手帮忙解答,感激不尽!!!

问题描述 关于javaScript中变量的问题,本人初学的菜鸟,希望哪位高手帮忙解答,感激不尽!!! List item <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 复选商品计算价格 var goodsNode = document.getElementsB

局部变量-javascript中变量作用域的问题

问题描述 javascript中变量作用域的问题 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

JavaScript中变量声明有var和没var的区别示例介绍_javascript技巧

本文来论述JavaScript中变量声明有var和没var的区别,关于Js中的变量声明的作用域是以函数为单位,所以我们经常见到避免全局变量污染的方法是 (function(){ // ... })(); 在函数内部,有var和没var声明的变量是不一样的.有var声明的是局部变量,没var的,声明的全局变量,所以可以借此向外暴露接口东东. 在全局作用域内声明变量时,有var 和没var看起来都一样,我们知道,声明的全局变量,就是window的属性,究竟是否一样,我们通过ECMAScrpit5提供

浅谈php中变量的数据类型判断函数

在php中我们可以通过 var_dump()打印出变量的类型和值.同时我们可以通过一些函数判断变量的类型.如果只是想得到一个变量的数据类型,可以使用gettype()函数,gettype($t) 返回$t的数据类型的字符串,要是$t不属于php中8种基本变量类型,返回"unknow type".我们还可以通过is_type系类函数直接判断是否为type类型函数,是的话返回true ,不是返回false. 如: is_bool()        是否为布尔型 is_int()      

关于javascript中变量作用域理解

现在就结合网上的一篇文章在重新回顾下作用域这个东西吧. 作用域和上下文并不是同一个东西,很多人可能会把它搞混.每一个函数调用都联系着一个作用域和一个上下文.根本上来说,作用域是基于函数的而上下文是基于对象的.换句话说,作用域与函数调用是能够获取的变量有联系,它对与每一次调用来说都是独一无二的.上下文常常代表this变量的值,它指向"拥有"当前执行的这段代码的对象. 变量作用域 一个变量的作用域是程序源代码中定义这个变量的区域.全局变量拥有全局作用域,在js代码里的任何地方都是有定义的.

javascript中null和undefined判断和区别分析

一时间不好回答,特别是undefined,因为这涉及到undefined的实现原理.于是,细想之后,写下本文,请各位大侠拍砖. 总所周知:null == undefined 但是:null !== undefined 那么这两者到底有啥区别呢? 请听俺娓娓道来... null 这是一个对象,但是为空.因为是对象,所以 typeof null 返回 'object' . null 是 JavaScript 保留关键字. null 参与数值运算时其值会自动转换为 0 ,因此,下列表达式计算后会得到正