`
snowmagic
  • 浏览: 716 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

javascript

阅读更多
今天看到Nicholas C. Zakas的一篇博客,回答“So you think you know JavaScript”里的几个问题,觉得挺有意思,虽然都是不常用的功能,不过毕竟js调试起来比较麻烦,经常出莫名其妙的错,看看也挺有好处。
主要的知识点
1、如何检查全局变量是否存在
   全局变量都是window的属性,检查变量a是否存在
   if(a) 或者 if(a == 'undifined') //如果a不存在会有object expected错
   if(window.a) //ok,其实是检查a存在并且不是undifined
   if("a" in window) // ok,检查a已经被声明,即使未被初始化

2、全局变量的声明
   js引擎会首先扫描一次源文件,把所有变量声明提到最上部,所以这两个是一样的
   alert("a" in window);//true
   var a;

   var a;
   alert("a" in window);//true


3、全局变量初始化
   声明会被上提,但是初始化不会
   var a = 1;其实会被拆成两部分:
   var a;//上提到顶部
   a = 1;//在原有位置执行

4、函数声明
   函数同普通变量一样,声明上提初始化不会
   var func = function foo(argc1){}同样被分成两部分
   var func //变量声明
   function foo //函数声明
   func = function foo //初始化

5、变量名重载
   出现相同的函数名,变量名声明时,函数名会重载变量名,
   	
        function f1(){
		var a=1;
	}
	var f1;
	alert(f1);//function body


    变量名初始化后会用变量名
   
        function f1(){
		var a=1;
	}
        var f1=1;
	alert(f1);//1


6、函数argument对象
   argument对象与参数一一对应
	
        function f1(a,b,c){
		arguments[0]=2;
		alert(a); //2
	}
	f1(1);

    需要注意的是argument和函数变量并不是引用关系(同一内存地址),而是引擎维护他们同步

7、this的作用域
   简单说this是使用this的函数所在的对象
	var object = {
		m:function(){
			alert(this == object);
		}
	}
	
	object.m();

    对于全局函数来说,this=window

8.call(null)
  call函数参数为空时,默认是window对象
     
      function m(){
		alert(this == window);
	};
	
        m.call();//true
	m.call(null);//true


附原题
1、
if (!("a" in window)) {//底下有声明,会被提前,所以a存在,为undifined
    var a = 1;//不会走到这
}
alert(a);//undifined

2、
var a = 1, //变量被初始化了,并且函数变量赋值,不会重载a
    b = function a(x) {
        x && a(--x);
    };
alert(a); //1

3、
function a(x) {
    return x * 2;
}
var a;
alert(a);//函数名重载变量名,打印函数体

4、
function b(x, y, a) {
    arguments[2] = 10;
    alert(a); //10
}
b(1, 2, 3);

5、
function a() {
    alert(this);//[object Window]
}
a.call(null);//call参数为空时默认是window
分享到:
评论

相关推荐

    深入理解JavaScript系列

    本书是一本全面、深入介绍JavaScript语言的学习指南。本书共分四个部分,第1部分帮助读者快速入手,掌握基本的JavaScript编程要点;第2部分介绍JavaScript的发展和技术背景;第3部分深入探索JavaScript,介绍了语法...

    head first JavaScript源码

    《Head First JavaScript源码》是2010年出版的一本中文版JavaScript学习书籍的源码,这本书以其独特的视觉设计和易理解的方式深入浅出地介绍了JavaScript编程语言。JavaScript是一种广泛应用于网页和网络应用的脚本...

    JavaScript权威指南(JavaScript犀牛书一本)

    《JavaScript权威指南》是JavaScript编程领域的一本经典之作,由著名技术作家David Flanagan撰写,被誉为"JavaScript犀牛书"。这本书深入浅出地讲解了JavaScript语言的核心概念、语法特性和高级特性,对于想要全面...

    Effective JavaScript: 68 Specific Ways to Harness the Power of JavaScript[EPUB版]

    Author David Herman, with his years of experience on Ecma’s JavaScript standardization committee, illuminates the language’s inner workings as never before—helping you take full advantage of ...

    VS2015安装证书,JavaScript_ProjectSystem.msi,JavaScript_LanguageService.msi

    在这个场景中,我们关注的是VS2015的安装过程中涉及到的证书问题以及两个特定的组件:JavaScript_ProjectSystem.msi和JavaScript_LanguageService.msi。 首先,关于“VS2015安装证书”,这通常是指安装过程中需要...

    《JavaScript程序设计案例教程》课件(共13章)第1章 JavaScript程序设计案例教程.pdf

    《JavaScript程序设计案例教程》课件(共13章)第1章 JavaScript程序设计案例教程.pdf《JavaScript程序设计案例教程》课件(共13章)第1章 JavaScript程序设计案例教程.pdf《JavaScript程序设计案例教程》课件(共13章)第...

    JavaScript之Math对象(源代码)

    JavaScript之Math对象(源代码)JavaScript之Math对象(源代码)JavaScript之Math对象(源代码)JavaScript之Math对象(源代码)JavaScript之Math对象(源代码)JavaScript之Math对象(源代码)JavaScript之Math对象...

    web期末大作业 基于HTML+CSS+JavaScript实现的精美电商购物网站首页源码

    web期末大作业 基于HTML+CSS+JavaScript实现的精美电商购物网站首页源码 web期末大作业 基于HTML+CSS+JavaScript实现的精美电商购物网站首页源码 web期末大作业 基于HTML+CSS+JavaScript实现的精美电商购物网站首页...

    javascript试题(附答案)

    JavaScript是一种广泛应用于网页和网络应用的编程语言,尤其在客户端脚本方面扮演着核心角色。这份"javascript试题(附答案)"是为初学者设计的,旨在帮助他们更好地理解和掌握JavaScript的基础知识。 一、变量与数据...

    ArcGis-for-javaScript最全中文API.pdf

    ArcGIS JavaScript API 介绍与示例 ArcGIS JavaScript API 是 ESRI 提供的一种基于 JavaScript 的开发工具,允许开发者创建交互式的 Web 地图应用程序。本文将对 ArcGIS JavaScript API 进行详细的介绍,并提供多个...

    JavaScript 动态网页设计期末大作业CHASMISH眼镜网(纯手打,高分项目).zip

    JavaScript 动态网页设计期末大作业CHASMISH眼镜网(纯手打,高分项目)。 JavaScript 动态网页设计期末大作业CHASMISH眼镜网(纯手打,高分项目)。 JavaScript 动态网页设计期末大作业CHASMISH眼镜网(纯手打,...

    [JavaScript权威指南(第6版)]

    《JavaScript权威指南(第6版)》主要讲述的内容涵盖JavaScript语言本身,以及Web浏览器所实现的JavaScript API。本书第6版涵盖了HTML5和ECMAScript 5,很多章节完全重写,增加了当今Web开发的最佳实践的内容,新增...

    JavaScript结课大作业.zip

    JavaScript是一种广泛应用于网页和网络应用开发的脚本语言,它主要负责实现客户端的交互效果、动态更新内容以及处理用户输入。在"JavaScript结课大作业.zip"这个压缩包中,我们可以推测这是一份关于JavaScript编程的...

    HTML+CSS+Javascript详细手册大全 含9个chm文档资料合集

    3- JavaScript参考手册.chm 4- JavaScript参考手册中文版.chm 5- Javascript高级教程.CHM 6- JavaScript使用手册.chm 7- 网页制作完全手册.chm 8- 样式表滤镜中文手册.CHM 9- 样式表中文手册2.0.CHM

    JavaScript基础教程(第8版) 高清版 mobi

    《javascript基础教程(第8版)》循序渐进地讲述了javascript 及相关的css、dom、ajax、jquery 等技术。书中从javascript 语言基础开始,分别讨论了图像、框架、浏览器窗口、表单、正则表达式、用户事件和cookie,并...

    JavaScript DOM编程艺术(第2版pdf)+源代码

    JavaScript DOM编程艺术(第2版)是一本深受程序员喜爱的JavaScript技术书籍,专注于讲解如何使用JavaScript与Document Object Model(DOM)进行交互。DOM是Web页面的结构化表示,它允许我们通过编程方式操纵HTML和XML...

    JavaScript前端开发案例教程-源代码.rar

    JavaScript,作为全球最广泛使用的编程语言之一,是前端开发的核心技术。这个名为"JavaScript前端开发案例教程-源代码.rar"的压缩包文件提供了一系列实践案例,帮助开发者深入理解和掌握JavaScript在网页开发中的...

    JavaScript DOM编程艺术【第2版&高清】.pdf

    但是,根据标题《JavaScript DOM编程艺术【第2版&高清】.pdf》和描述“JavaScript DOM编程艺术,高清资源,无比经典,值得拥有”,我们可以推断这本书主要讲述了JavaScript中DOM(文档对象模型)的相关编程技术。...

    Javascript 高级程序设计(第3版)超清中文PDF

    JavaScript,作为一种广泛应用于Web开发的脚本语言,已经成为现代互联网技术不可或缺的一部分。《JavaScript高级程序设计》(第3版)是一本深入探讨该语言精髓的权威书籍,它为读者提供了全面且深入的JavaScript知识...

Global site tag (gtag.js) - Google Analytics