惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Attack and Defense Labs
Attack and Defense Labs
T
Threatpost
C
Cybersecurity and Infrastructure Security Agency CISA
H
Hackread – Cybersecurity News, Data Breaches, AI and More
I
Intezer
C
Cyber Attacks, Cyber Crime and Cyber Security
The Register - Security
The Register - Security
量子位
Security Latest
Security Latest
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
C
CXSECURITY Database RSS Feed - CXSecurity.com
MyScale Blog
MyScale Blog
J
Java Code Geeks
Apple Machine Learning Research
Apple Machine Learning Research
Google DeepMind News
Google DeepMind News
WordPress大学
WordPress大学
Spread Privacy
Spread Privacy
Jina AI
Jina AI
博客园 - 【当耐特】
P
Palo Alto Networks Blog
Last Week in AI
Last Week in AI
SecWiki News
SecWiki News
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
G
GRAHAM CLULEY
宝玉的分享
宝玉的分享
Hacker News - Newest:
Hacker News - Newest: "LLM"
T
The Blog of Author Tim Ferriss
V
Vulnerabilities – Threatpost
有赞技术团队
有赞技术团队
T
Tor Project blog
H
Hacker News: Front Page
A
Arctic Wolf
NISL@THU
NISL@THU
A
About on SuperTechFans
云风的 BLOG
云风的 BLOG
Engineering at Meta
Engineering at Meta
V
V2EX
N
News and Events Feed by Topic
Webroot Blog
Webroot Blog
Know Your Adversary
Know Your Adversary
P
Privacy International News Feed
I
InfoQ
D
Docker
L
LINUX DO - 最新话题
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
U
Unit 42

博客园 - 文野

DDD自问自答 数据结构(C#语言版)——栈和队列 数据结构(C#语言版)——线性表 2011一月的三个故事 我想要的2011 我的2011的三个故事 用Windows Live Writer写博客 我们是不是把MVC、ORM等技术的主次颠倒了? 论单一职责 对象结构 由做梦想到的 2009第一帖,测试用Word2007发布博客 一点一点学ASP.NET之基础概念——事件 应用框架的设计与实现学习手札系列(持续更新) 未解决的问题(持续更新) 应用框架的设计与实现学习手札之类工厂服务——反射 一点一点学ASP.NET之基础概念——委托 一点一点学ASP.NET之示例——HttpModule 示例 一点一点学ASP.NET系列(持续更新)
《悟透JavaScript》中的知识点
文野 · 2010-10-26 · via 博客园 - 文野

简单的数据类型只有undefined, null, boolean, number和string。

typeof(undefined)返回的也是undefined。

typeof(null)返回object,但null并非object,具有null值的变量也并非object。

typeof(NaN)和typeof(Infinity)都返回Number。NaN参与任何数值计算的结果都是NaN,而且NaN!=NaN,Infinity/Infinity=NaN。

JavaScript里“===”表示“全等”,也就是数据值与数据类型都必须相等才是true。如undefined==null、”123”==123是true,但undefined===null、”123”===123是false。

JavaScript函数只是一个命了名的变量,变量类型即为function,变量的值就是我们编写的函数代码体。所以下面两段代码除了一点细微的差别,其内部实现完全相同。

定义式

   1: <script type="text/javascript">
   2:     function myfunc(){
   3:         alert("hello");
   4:     }
   5:     alert(typeof myfunc);
   6: </script>

变量式

   1: <script type="text/javascript">
   2:     var myfunc = function(){
   3:         alert("hello");
   4:     }
   5:     alert(typeof myfunc);
   6: </script>

细微的差别在于,Javascript执行引擎并非一行一行地分析和执行程序,而是一段一段地分析执行的。而且,在同一段程序的分析执行中,定义式的函数语句会被提取出来优先执行。函数定义执行完之后,才会按顺序执行其他语句代码。也就是说,两个相同函数名的定义式的函数在同一段程序中时,第一个函数将被第二个函数覆盖,所以代码段中所有调用此函数的地方执行的都是第二个函数定义中的语句。

   1: <script type="text/javascript">
   2:     var myfunc = function(){
   3:         alert("hello");
   4:     }
   5:     myfunc();
   6:     myfunc = function(){
   7:         alert('yeah');
   8:     }
   9:     myfunc();
  10: </script>

结果:第一个弹出“hello”,第二个弹出“yeah”。

   1: <script type="text/javascript">
   2:     function myfunc(){
   3:         alert("hello");
   4:     }
   5:     myfunc();
   6:     function myfunc(){
   7:         alert('yeah');
   8:     }
   9:     myfunc();
  10: </script>

结果:两个都弹出“yeah”。

   1: <script type="text/javascript">
   2:     function myfunc(){
   3:         alert("hello");
   4:     }
   5:     myfunc();
   6: </script>
   7: <script type="text/javascript">
   8:     function myfunc(){
   9:         alert('yeah');
  10:     }
  11:     myfunc();
  12: </script>

结果:第一个弹出“hello”,第二个弹出“yeah”。

在JavaScript里的全局环境就是一个对象,这个对象是JavaScript运行环境的根。对于浏览器中的JavaScript来说,这个根对象就是window对象。对于全局的JavaScript来说,window对象就相当于当前作用域。

“var”定义的是作用域上的一个变量,而没有“var”的标识符却可能是全局根对象的一个属性。

当代码运行进入一个函数时,JavaScript会创建一个新的作用域,来作为当前作用域的子域,然后切换至这个新建的子作用域,开始执行函数逻辑。