1.var声明的变量是永久性的,不能用delete运算符删除
2.使用var多次声明一个变量是合法的,不会造成任何错误,只不过是重新赋值而已;如果尝试给一个未用var声明的变量赋值,JavaScript会隐式声明该变量,隐式声明的变量会被创建为全局变量。
3.偷个懒,贴断代码:
var scope = "global"; // Declare a global variable
function checkscope( ) {
var scope = "local"; // Declare a local variable with the same name
document.write(scope); // Use the local variable, not the global one
}
checkscope( ); // Prints "local"
如果不使用var来定义变量,看看下面代码的执行结果吧,想不到吧,呵呵
scope = "global"; // Declare a global variable, even without var
function checkscope( ) {
scope = "local"; // Oops! We just changed the global variable
document.write(scope); // Uses the global variable
myscope = "local"; // This implicitly declares a new global variable
document.write(myscope); // Uses the new global variable
}
checkscope( ); // Prints "locallocal"
document.write(scope); // This prints "local"
document.write(myscope); // This prints "local"
4.JavaScript变量没有块级作用域
function test(o) {
var i = 0; // i is defined throughout function
if (typeof o == "object") {
var j = 0; // j is defined everywhere, not just block
for(var k=0; k < 10; k++) { // k is defined everywhere, not just loop
document.write(k);
}
document.write(k); // k is still defined: prints 10
}
document.write(j); // j is defined, but may not be initialized
}
在函数中声明的变量在整个函数中都有定义,不管这个这个变量在哪个位置定义,例子:var scope = "global";
function f( ) {
alert(scope); // Displays "undefined", not "global"
var scope = "local"; // Variable initialized here, but defined everywhere
alert(scope); // Displays "local"
}
f( );
JavaScript解析器在加载函数时候,总是先把所有var定义的变量声明,然后才会给赋值初始化,这段代码其实相当于:
function f( ) {
var scope; // Local variable is declared at the start of the function
alert(scope); // It exists here, but still has "undefined" value
scope = "local"; // Now we initialize it and give it a value
alert(scope); // And here it has a value
}
所以,还是建议大家在函数的开头把所有变量声明.
5.作为属性的变量
两点:<1>全局变量是全局对象的属性
<2>局部变量是调用对象的属性,每个函数都有自己的调用对象。
<3>JavaScript允许有多个全局执行环境,这就是框架frame运行的原理;每个框架或者窗口中的JS代码都运行在自己的执行环境中,具有自己的全局变量,但是它们又是有关联的,即:可以用parent.frames[0].x方式来引用另一个框架中的变量。
6.作用域链
分享到:
相关推荐
自己对《Javascript权威指南》的学习过程中摘录下来的笔记,去掉了那些简单的、罗索的相关介绍,重点在于那些不常用到的语法,规则,以及重点内容的相关示例,此为WORD版,这是第二部分,主要是讲客户端Javascript的...
目录: 第一章 javascript语言概述 第二章 JavaScript语言基础 第三章 JavaScript事件处理 第四章 JavaScript基于对象编程 第六章 string,math,array等数据对象 第七章 window及相关顶级对象 第八章 document对象
JavaScript学习指南 第二版
javascript学习第二章,很完整的资料!
前端学习——javascript学习笔记(二)函数
javascript学习手册 JavaScript是一种广泛用于Web开发的编程语言,它可以用于创建动态和交互式的网页效果。无论你是初学者还是有一定编程经验的开发者,掌握JavaScript都是非常重要的。本手册将为你提供一个学习...
JavaScript语言参考 JavaScript教程 Scripting 运行时的参考 filesystemobject对象教程
18级在校生,学习javascript与jQuery,第十二章上机作业,广安职业技术学院。 记录学习的点点滴滴,加强巩固练习。
javascript学习指导,语法基础的指导及编写格式和方法的说明 第一章 概述 4 1.1 JavaScript的由来 4 1.2 什么是JavaScript 4 1.3 JavaScript的特点 4 1.3.1 javascript的优点 5 1.3.2 javascript的局限...
JavaScript王者归来第二卷,共4卷,包含了很多好的例子,对学习JS很有帮助
头歌教学实践平台 Web前端开发基础 JavaScript 学习手册二:JS 数据类型。源码txt格式。
第一课 Javascript教程 课程简介 实际应用 隐藏JavaScript 第一天复习 第二课 第二天课程简介 变量介绍 首个变量例子的程序主体 字符串的魔力 变量练习 ...
一、JavaScript语言特点 1.1、JavaScript是基于对象和事件驱动的(动态的) 它可以直接对用户或客户输入做出...二、JavaScript变量 2.1、定义变量 在定义变量时,统一使用”var 变量名”表示,例如:var str;甚至可
Javascript知识架构学习路径(二)运算符篇.docx
二、Google v8入门 2.1 v8的基本概念 2.2 从HelloWorld开始 2.3 在C++中访问Javascript的变量及函数 2.4 在Javascript中访问C++全局函数及变量 2.5 在C++中“声明”“Javascript类”, 供Javascript实例...
S2 5.0 Javascript指导学习第二部分
第一章 什么是JavaScript 第二章 JavaScript和Java的区别 第三章 基本数据类型、表达式、运算符 第四章 程序控制流 第五章 对象的基础知识 第六章 常用对象的属性和方法 第七章 系统脚本编程语言中独有的方法
第二阶段: JavaScript DOM和BOM 第1课 JavaScript内置对象 学习内置对象的常用属性和方法,方便我们开发中直接调用,进而实现更多功能 第2课 JavaScript DOM基础 DOM的方法和属性既可以获取网页中的元素,也可以...
JavaScript是Web开发中最重要的一门语言,它强大而优美。无论是桌面开发,还是移动应用。...本书是超级畅销书的升级版,由倡导Web标准的领军人物执笔,揭示了前端开发的真谛,是学习JavaScript和DOM开发的必读之作。
JavaScript DOM编程艺术(中文第二版)学习笔记