博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jq源码立即执行函数的undefined参数
阅读量:4947 次
发布时间:2019-06-11

本文共 713 字,大约阅读时间需要 2 分钟。

  函数参数是undefined,那这个undefined是个变量标识符还是值呢?

  《JS权威指南》函数一章讲过,未给函数形参传值的时候,该形参的值是undefined。所以形参undefined是一个局部变量标识符,该变量值是undefined。注意,undefined不是JS保留字和关键字。

那这有什么用那呢?这种做法可以防止在jq.js之外对undefined进行赋值导致的一些冲突。

  :为什么undefined、NaN和Infinity可以被赋值,而null不可以?

undefined = 123;NaN = 123;Infinity = 123;null = 123; // 报错:Uncaught Reference Error

  前三条语句可以执行,尽管赋值并没有成功;最后一条语句报错。  

  解答:

  undefined/NaN/Infinity是全局属性,这些属性是不可写(writable:false)的,也就是说在全局作用域内不能重新赋值(赋值无效,不会报错);

null是一个JavaScript字面量(而不是全局对象的一个属性),不能对其赋值。

  因为null是js的关键字,而undefined虽然含义和null很像,但是他是js预定义的一个全局变量,他的值就是'undefined'。其实早在ES3中,有一个bug,

undefined是一个可读可写的变量,可以给他赋任意值,但到了ES5就被修复了,他是一个只读的值,所以虽然没有报错,但是赋值语句是没有效果的。

  

  

转载于:https://www.cnblogs.com/zhansu/p/5658282.html

你可能感兴趣的文章
WebServer
查看>>
Perl 三种时间time,localtime,gmttime
查看>>
用unity surface shader 重新渲染dota2 模型
查看>>
BZOJ—— 3402: [Usaco2009 Open]Hide and Seek 捉迷藏
查看>>
codevs——T3657 括号序列
查看>>
读书笔记1
查看>>
[spring-boot] 健康状况监控
查看>>
Android 生命周期
查看>>
B. Complete the Word(Codeforces Round #372 (Div. 2)) 尺取大法
查看>>
Codeforces Round #540 (Div. 3)题解
查看>>
css选择器,伪类和伪元素的区别
查看>>
Linux系统调优及安全设置
查看>>
页面不可编辑
查看>>
oracle安装数据库中文乱码解决办法
查看>>
Keepalived 的使用
查看>>
Zabbix-微信报警
查看>>
小学奥数 蓄水池水管问题
查看>>
牛客网编程练习之PAT乙级(Basic Level):1032 选大王
查看>>
wamp虚拟路径访问配置
查看>>
360隐私保护器直指腾讯QQ 360真的发飙了,百度旁观!
查看>>