未定义的值undefined表示变量的值未定义、属性的值未定义或属性不存在。undefined不是常量,也不是保留字,在语法上允许修改,但目前浏览器为了避免产生歧义,会阻止修改undefined。......
2023-11-08
1.变量未声明与未定义
使用一个变量前,必须先使用var关键字声明,因为访问一个不存在的变量会触发错误,比如在2.3.1.html中访问未声明的变量block3时会抛出错误“Uncaught ReferenceError: block3 is not defined”。
在实际应用中,一个网页包含多达几十甚至上百个外部JavaScript文件,不同文件维护各自的变量。在本段<script>标签中,如果对其他JavaScript代码有依赖,在使用它们提供的变量前通过typeof检测变量是否为undefined,可以避免直接访问报错,导致程序异常结束。
3.5.1.html分别使用了未声明的变量和未定义的变量,如下所示。
动手写3.5.1
typeof检测到未声明的标识符和未定义的变量时均返回undefined。第一个<script>的if判断语句都为true;未声明的标识符不能直接访问,第二个<script>标签抛出错误“Uncaught ReferenceError: undeclaredVariable is not defined”;第三个<script>标签中if判断语句为true。
执行3.5.1.html,看到网页输出的提示,打开浏览器控制台,则能看到访问未声明变量undeclaredVariable时抛出的错误,如下图所示。
图3.5.1 使用typeof检测未声明和未定义的变量(www.chuimin.cn)
使用typeof检测一个外部变量是否为undefined,而不是直接判断该变量的值为undefined,这样可以避免抛出“Uncaught ReferenceError”错误。
2.属性未声明与未定义
检测对象的属性不存在或者属性的值是undefined时,不管是使用typeof判断还是直接与undefined比较,都可以正常执行。
3.5.2.html分别通过typeof关键字和undefined判断对象的属性是否存在,如下所示。
动手写3.5.2
执行3.5.2.html,输出检测结果到网页,如下图所示。
图3.5.2 检测对象的属性是否存在
默认情况下,所有对象都继承了hasOwnProperty()函数,该函数用于判断当前对象是否拥有指定属性,而不管属性的值是什么类型。
有关零基础JavaScript从入门到精通的文章
未定义的值undefined表示变量的值未定义、属性的值未定义或属性不存在。undefined不是常量,也不是保留字,在语法上允许修改,但目前浏览器为了避免产生歧义,会阻止修改undefined。......
2023-11-08
JavaScript函数内的特殊变量arguments是函数调用时所有参数的集合;通过arguments对象可以获取任意数量的参数,即使没有形参与之对应。arguments对象是一种类似数组的数据结构,但是没有数组操作的方法。动手写7.3.5执行7.3.5.html,输出arguments到网页,如下图所示。图7.3.5arguments对象使用arguments提高了函数编程的灵活性和容错性。arguments虽然不是关键字,但为了避免冲突,声明变量时不要使用arguments作为变量名。......
2023-11-08
JavaScript的function关键字用于声明具名函数和匿名函数,具名函数可以直接使用,匿名函数需要赋值给变量或属性才能使用,语法格式如下:语法格式说明:◇ functionName是函数名,与变量名一样必须是合法的标识符,不能与变量名重名。图7.1.2函数声明位置函数init() 内部声明函数 innerFunction() ,在该函数内可以正常调用。......
2023-11-08
使用数字时,不需要特殊指定数字是整型还是浮点型,JavaScript会自动判断数字类型,例如1、2.3、4.56等。因此在JavaScript中,1、1.0、1.00都用1表示,若要对三者进行区分,则需要将它们转换为字符串。图3.2.2JavaScript的数字类型数字前出现减号或负号(-),表示负数;加号(+)表示正数,可以省略。......
2023-11-08
this表示当前函数运行的上下文环境,也就是调用该函数的对象。图7.9.1this 指向 window调用函数getMaxNumber()时,this是全局对象window,在网页中显示this转换成字符串之后是"[object Window]"。图7.9.3this指向调用对象大部分情况下,只需要使用这两种形式访问this对象;少数情况下,可以通过特定方式修改this对象。图7.9.4使用apply()函数修改 this7.9.5.html调用函数的call()函数,传入指定参数并修改this对象,如下所示。......
2023-11-08
也可用新闻做宣传,“用事实说话”,但这些事实只是证明观点的材料,从属于说话,是为观点服务的,因此这不是新闻之道,而是宣传之道,落脚点在“说话”,而非报道。毛泽东关于用事实说话、关于党报要宣传党的路线方针政策等思想,一直被作为新闻思想,其实更准确地说,应是与新闻传播有关的宣传思想、报刊思想。......
2023-11-18
在先秦古籍中,炎帝、神农氏、烈山氏的称谓大多独立存在,如《庄子》中都只提神农而不称其为炎帝,《管子·封禅》《吕氏春秋》则把炎帝和神农氏作为两个人区别对待。日本绘画中的神农形象司马迁在文中并未将神农氏称为炎帝,而且先指明“神农氏世衰”,不能征伐诸侯,然后又说“炎帝欲侵陵诸侯”,显然并不把炎帝与神农氏当作同一个人。烈山氏和神农炎帝的合并导致陕西宝鸡和湖北厉山两地神农故里之争。......
2023-10-15
表4.1.1JavaScript一元运算符(续上表)2.二元运算符二元运算符是指需要两个操作数的运算符,它是JavaScript中最常见的运算符,比如加减乘除、位移、大小比较等。表4.1.2JavaScript二元运算符(续上表)3.三元运算符三元运算符是指需要三个操作数的运算符,JavaScript中唯一的三元运算符是条件运算符(?表4.1.3JavaScript三元运算符有C++开发经验的读者应该知道,C++支持运算符重载,即运算符根据不同的操作数类型执行不同运算。......
2023-11-08
相关推荐