关于定义变量名为"name"的坑!!!
昨天下午没有什么工作可做,闲来无事就上博客园看看了,有个问题让我一直很纳闷。
直接上代码吧:

再用表达式创建函数时遇到的问题,这里的代码按照正常逻辑只有那个在变量定义后面的函数执行打印的值才是"global",其他的函数执行打印的是undefined。
原因:
原因就是这个变量名"name",在 js 中name既不是关键字又不是保留字,它属于window里的一个内置对象,就是直接打印window里面就会有name这个属性。

window里的name属性是个空字符串,如果定义了一个变量为name,那它就会直接覆盖window里的name属性的值。


而这里name就不会有关于变量提升的问题,所以上面的问题才会一直打印出"global".
那么问题就来了,是不是所有的window内置对象都像name那样呢???
其实我也不知道,哈哈哈哈,要一步步去尝试。。。
关于定义变量名为"name"的坑!!!的更多相关文章
- R 动态定义变量名 assign
rm(list=ls()) library(GSVA) library(GSEABase) library(GSVAdata) library(msigdbr) library(org.Hs.eg.d ...
- 学习go语言编程系列之定义变量
package main import ( "fmt" "math") func main() { // 1. 定义变量名age,不初始化,使用对应类型的默认值 ...
- ansible中定义变量的若干方法
Ansible支持十几种定义变量的方式 根据优先级排序的定义方式: Inventory变量 Host Facts变量 Playbook变量 Playbook提示变量 变量文件 命令行变量 1.Inve ...
- C# @符号的作用, 可定义关键字为变量名
一 字符串中的用法字符@表示,其后的字符串是个“逐字字符串”(verbatim string).@只能对字符串常量作用.1.用于文件路径以下是引用片段:string s_FilePath =" ...
- js中定义用字符串拼接起来的变量名的变量
用对象的形式 你的问题可以通过js的对象实现 var ovar = {}; for(var i=0;i<10;i++){ ovar['var_'+i]=''; } 3用数组的形式 var arr ...
- 第二篇 Python初识别及变量名定义规范
第一个Python程序 可以打开notepad或者其他文本编辑器,输入:print("Hello Python!"),将文件保存到任意盘符下,后缀名是 .py 两种python程 ...
- Java定义bean实体类中的变量时变量名的问题
首先:TMD,这个问题花了我两个多小时,居然是因为一个字母的大小写导致的,我瞬间就&Y^%^&%&()*%¥%¥¥&^#@%&; 事情是酱紫的: 我定义了一个变 ...
- 【好文分享】为什么强烈禁止开发人员使用isSuccess作为变量名
原文来自阿里云hollies:https://developer.aliyun.com/article/701413 简介: 在日常开发中,我们会经常要在类中定义布尔类型的变量,比如在给外部系统提 ...
- 【Python基础学习二】定义变量、判断、循环、函数基本语法
先来一个愉快的Hello World吧,就是这么简单,不需要写标点符号,但是需要严格按照缩进关系,Python变量的作用域是靠tab来控制的. print("Hello World" ...
随机推荐
- Mysql 查询一个月当前时间一个月之前的数据
sql: AND date_format(createDTM, MONTH),'%Y-%m-%d')
- 重装系统之前需要做的checklist
1. 各浏览器 ---- 导出收藏夹 2. 备份桌面 3. 查用工具截图保存.保存使用了哪些工具 4.查看C盘有没有放置其他资料,需要备份的
- win10 system guard运行时监视器,关闭服务
这个服务,内存占用了高达21%,造成工作电脑运行缓慢,经常卡死1min,要关闭服务,并不能直接在任务管理器“服务”这里对属性进行修改,会提示“拒绝访问”,即使修改了文件夹属性也不可以,要修改注册表方可 ...
- 安装 create-react-app@latest 失败,错误代码:243
在创建react项目,执行以下命令的时候 npx create-react-app my-app 报错如下: 解决方案: 全局安装即可 npm install -g create-react-app
- Linux终端复制粘贴后前后会多出0~和~1
在终端中执行即可 printf "\e[?2004l" 在终端无法复制问题 set mouse=r
- LeetCode_476. Number Complement
476. Number Complement Easy Given a positive integer, output its complement number. The complement s ...
- replace into 详解 update mysql
转replace 与 update 区分本文主要对比一下 Sqlite 中的 replace 语句和 update 语句 . 在本例中使用如下数据库表: 图1 该表的表名为student, 存储学 ...
- 通过TopShelf简单创建windows service
目前很多项目都是B/S架构的,我们经常会用到webapi.MVC等框架,实际项目中可能不仅仅是一些数据的增删改查,需要对数据进行计算,但是将计算逻辑放到api层又会拖累整个项目的运行速度,从而会写一些 ...
- GitBook的使用
首先安装gitbook npm install -g gitbook-cli 检查是否安装成功 gitbook -V 然后就要建立一个文件夹进到文件夹目录下 让此文件夹初始化下 gitbook ini ...
- Java 将 PPT 形状(表格、文本框、心形、图表等)保存成图片
MS PowerPoint中的表格.文本框.心形.图表.图片等均可以称为形状,将这些形状保存成图片,便可分类储存,方便日后查找,再利用. 本文将介绍如何使用 Spire.Presentation fo ...