首页 > 编程语言 >javascript中的undefined可以被重写

javascript中的undefined可以被重写

时间:2024-01-19 09:45:05浏览次数:23  
标签:false undefined javascript 浏览器 赋值 重写 变量

众所周知,当声明一个变量,并且没有给赋值的情况下,它的初始值是 undefined
但是在javascript中,怎么检查一个值是否为 undefined 呢?

在现代浏览器中,你可以安全的直接比较将变量是与 undefined 进行比较

if (name === undefined) {
    //...
}

一些人反对直接使用 undefined 变量进行比较,因为在旧的浏览器中它允许被重新赋值,像下面这样:

undefined = "test"

在被重新赋值后,直接使用 undefined 将不能正确的检测一个变量是否被赋值。
然而,这一行为在2009年的ECMAScript 5被修复了。

15.1.1.3 undefined
The value of undefined is undefined (see 8.1). This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
undefined 的值是 undefined。这个属性有不可写,不可枚举,不可配置的特性。

标签:false,undefined,javascript,浏览器,赋值,重写,变量
From: https://www.cnblogs.com/vickylinj/p/17973963

相关文章

  • Js(Javascript)的apply call 和bind区别
    ​ apply、call和bind是用于调用函数的三种不同方式,它们的主要区别在于函数调用时的上下文(this关键字)以及参数传递的方式。call和apply是用于立即调用函数并设置this上下文的方法,它们的主要区别在于参数传递的方式。bind不会立即执行函数,而是创建一个新的函数,将this......
  • JavaScript数组使用方法
    constarr=[4,3,2,1];/*操作数组*///在末尾添加元素arr.push(5);//结果:[4,3,2,1,5]//在开头添加元素arr.unshift(0);//结果:[0,4,3,2,1,5]//移除最后一个元素arr.pop();//结果:[0,4,3,2,1]//移除第一个元素arr.shift();//结果:[4,3,2......
  • JavaScript到底应不应该加分号?JavaScript自动插入分号规则详解
    JavaScript提供了automaticsemicoloninsertion(ASI)自动插入分号规则,在不加分号的情况下,会自动补充分号来分隔不同语句。导致在继左大括号换行、tab和space圣战后,前端又出现了一场战争。并且随着那个男人加入这场讨论之后,关于是否应该加分号的讨论更是激烈了。ASI自......
  • Javascript中addEventListener的3个参数
    //例document.addEventListener('click',()=>{//dosomething...},false) 1.addEventListener,接收3个参数第一个参数event:监听的事件名称第二个参数是函数:需要执行的事件第三个参数是useCapture(变量):用来判断是捕获还是冒泡 2.第三个参数为userCapyu......
  • JavaScript自建文档
    JavaScript温习文档JavaScript的使用场景网页特效发(node.js)桌面程序(electron)app(cordova)硬件控制(物联网)游戏开发(cocos2d-js)浏览器执行js过程渲染引擎:解析html和css,chrome用的blink,老版本用的webkitjs引擎:也叫js解析器,用来读取网页中的JavaScript......
  • JavaScript(JS) 判断没有属性的空对象{}的四种方法
    ​ JavaScript(JS)中对象没有属性初始化时,可能使用{}进行初始化,如此我们判断这样的没有属性的空对象就不是很方便,本文主要介绍JavaScript(JS)中判断没有属性的空对象{}的五种方法,以及相关的示例代码。1、通过JSON.stringify()判断可以使用JSON.stringify()将Javascript对象......
  • 正则表达式复习七——JavaScript 中使用
    JavaScript使用JavaScript的正则表达式是由RegExp对象表示的,同时也可以使用正则表达式字面量。1.使用RegExp对象letpattern=newRegExp("pattern","flags");pattern是字符串形式的正则表达式模式。flags是字符串形式的修饰符,可以包含i,g,m等。letpattern......
  • 利用javascript获取并修改伪元素的值
    HEAD中添加style标签强制覆盖初始属性这个方法是利用内部css样式的高优先级来覆盖外部css,好处是简单易理解,实现简单。坏处就是吃相太难看,过于粗暴。varstyle=document.createElement('style');style.innerHTML=".test::before{color:green}";//添加样式内容的话也可以用上面提......
  • 重写
    super注意点super调用父类的构造方法,必须在构造方法的第一个super必须只能出现在子类的方法或者构造方法中super和this不能同时调用构造方法 this代表的对象不同:this:本身调用者这个对象super:代表父类对象的应用前提this:没有继承也可以使用super......
  • 方法重写和方法重载
    原文链接:https://blog.csdn.net/qq_43500067/article/details/89598945方法重写:1、重写方法的方法名,参数列表必须相同,返回类型可以相同也可以是原类型的子类型。2、重写方法不能比原方法抛出更多的异常。3、重写方法的访问权限不能缩小4、方法重写只能用于子类重写父类的方法,父类......