- 浏览: 3465520 次
- 性别:
- 来自: China
文章分类
- 全部博客 (536)
- ajax (1)
- Algorithm (14)
- Android (40)
- CSS/HTML... (2)
- defy (3)
- DesignPattern (2)
- dorado (0)
- Drools (6)
- English/日本語 (7)
- Flex (2)
- Framework (0)
- Google (3)
- hibernate (13)
- homework (3)
- HTML5 (0)
- IDE (29)
- java (45)
- javaee (7)
- Javascript (14)
- java组件 (5)
- jQuery (4)
- jsp (8)
- jsf (2)
- Linux (2)
- lucene (0)
- mysql (6)
- news (3)
- Oracle (8)
- other (4)
- PHP (5)
- Python (0)
- Software Engineering (3)
- spring (7)
- struts1.x (14)
- struts2.x (14)
- strolling in cloud (1)
- subject:javaEnhance (20)
- Tomcat (7)
- validator (3)
- 学习·方法·心得 (8)
- .NET (2)
- vba (6)
- groovy (5)
- grails (2)
- SWT (0)
- big data (1)
- perl (1)
- objective-c (50)
- product (1)
- mac (7)
- ios (188)
- ios-phone (2)
- ios-system (15)
- ios-network (5)
- ios-file (4)
- ios-db (1)
- ios-media (3)
- ios-ui (27)
- ios-openSource (6)
- ios-animation (5)
- ios-drawing (7)
- c (2)
- ios-app (2)
- ios-course (15)
- ios-runtime (14)
- ios-code (8)
- ios-thread (8)
- ios-LBS (2)
- ios-issue (1)
- ios-design (2)
- Jailbreak (2)
- cocos2d (0)
- swift (16)
- ios-framework (4)
- apple watch (4)
- ios-web (1)
- react native (3)
- TVOS (1)
- OpenGL (1)
最新评论
-
xiaobinggg:
...
Session机制详解 -
菜鸟学生会:
Drools规则工作流引擎开发教程网盘地址:http://pa ...
Drools入门-----------环境搭建,分析Helloworld -
wangyudong:
不是很好用,不支持自动化测试RESTful API,也不支持自 ...
Simple REST Client POST使用方法 -
Paul0523:
很棒的一篇文章,感谢楼主分享
Session机制详解 -
啸笑天:
获取原型对象的三种方法<script>functi ...
复习JavaScript面向对象技术
局部变量覆盖全局变量,如下:
<script> //定义全局变量test var test = "全局变量"; //定义函数checkscope function checkscope() { //定义局部变量 // var test = "局部变量"; //输出局部变量 document.writeln(test+"<br/>"); alert(test); //var test="nihao"; } checkscope(); </script>
JavaScript变量没有块范围,只要在方法中定义,无论是在switch块中还是if块中,他们的作用范围都是整个函数。例如下面代码:
<script> function test(o) //javascript是值传递的 { //定义变量i,变量i的作用范围是整个函数 var i = 0; if (typeof o == "object") { //定义变量j,变量j的作用范围是整个函数内,而不是if块内。 var j = 5; for(var k = 0; k < 10; k++) { //因为JavaScript没有代码块范围 //所以k的作用范围是整个函数内,而不是循环体内 document.write(k); } } //即使出了循环体,k的值依然存在 alert(k + "\n" + j); } test(document); </script>
<script> //定义全局变量 var scope = "全局变量"; function test() { //因此全局变量被局部变量覆盖 //而此时scope局部变量尚未赋值,故此处输出undefined document.writeln(scope + "<br />"); //定义scope的局部变量,其作用范围为整个函数内 var scope = "局部变量"; //再次输出scope的值。 document.writeln(scope + "<br />"); } test(); </script>
变量范围对于执行html事件处理一样有效,如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> 事件处理中的局部变量和全局变量 </title> <meta name="author" content="Yeeku.H.Lee" /> <meta name="website" content="http://www.leegang.org" /> <meta http-equiv="Content-Type" content="text/html; charset=GBK" /> <script type="text/javascript"> //定义全局变量 var x = "全局变量"; </script> </head> <body> <!-- 在onclick事件中重新定义了x局部变量变量 --> <input type="button" value="局部变量" onclick="var x = '局部变量'; alert('输出x局部变量的值:' + x);" /> <!-- 直接输出全局变量x的值 --> <input type="button" value="全局变量 " onclick="alert('输出x全局变量的值: ' + x);" /> </body> </html>
函数(其实也是个类,此函数是唯一的构造器。使用new关键字创建)的
局部变量;没有前缀的变量或var前缀的变量,内部使用
实例变量:this.变量名,通过对象名访问
静态变量:函数名(类名).变量名,通过函数名访问
<script> //定义函数Person function Person(national, age) { //this修饰的属性为实例属性 this.age = age; //Person修饰的属性为静态属性 Person.national =national; //以var定义的变量为局部变量 var bb = 0; } //创建Person的第一个对象p1。国籍为中国,年纪为29 var p1 = new Person('中国' , 29); document.writeln("创建第一个Person对象<br />"); //输出第一个对象p1的年纪和国籍 document.writeln("p1的age属性为" + p1.age + "<br />"); document.writeln("p1的national属性为" + p1.national + "<br />"); document.writeln("通过Person访问静态national属性为" + Person.national + "<br />"); //输出bb属性 document.writeln("p1的bb属性为" + p1.bb + "<br /><hr />"); //创建Person的第二个对象p2 var p2 = new Person('美国' , 32); document.writeln("创建两个Person对象之后<br />"); //再次输出p1的年纪和国籍 document.writeln("p1的age属性为" + p1.age + "<br />"); document.writeln("p1的national属性为" + p1.national + "<br />"); //输出p2的年纪和国籍 document.writeln("p2的age属性为" + p2.age + "<br>"); document.writeln("p2的national属性为" + p2.national + "<br />"); //通过类名访问静态属性名 document.writeln("通过Person访问静态national属性为" + Person.national + "<br />"); </script>
还可以随时为对象增加方法和属性
<script> function Student(grade , subject) { //d定义一个grade实例属性, //将grade形参的值赋值给该实例属性。 this.grade = grade; //定义一个subject静态属性, //将subject形参的值赋值给该静态属性。 Student.subject = subject; } s1 = new Student(5, 'Java'); with(document) { writeln('s1的grade属性:' + s1.grade + "<br />"); writeln('s1的subject属性:' + s1.subject + "<br />"); writeln('Student的subject属性:' + Student.subject + "<br />"); } //为s1对象的subject属性赋值,即为它增加一个subject属性 s1.subject = 'Ruby'; with(document) { writeln('<hr />为s1的subject属性赋值后<br />'); writeln('s1的subject属性:' + s1.subject + "<br />"); writeln('Student的subject属性:' + Student.subject + "<br />"); } </script>
发表评论
-
macrotask和microtask
2017-11-22 16:49 0原文地址:https://github.com/easy ... -
React 高阶组件(HOC)
2017-11-22 16:55 2609原文地址:https://github.com/easy ... -
《ECMAScript 6 入门》笔记
2017-07-15 11:47 933let 和 const 命令 https://gi ... -
js的多种继承方式
2015-07-23 21:52 742构造函数的继承 function ... -
静态页面间数据传递方法总结
2012-03-09 10:41 2039静态压面间数据的传递方法很多,目前经搜索得到主要以下几种方法。 ... -
是生生世世
2011-10-19 08:31 0dialect -
复习JavaScript面向对象技术
2011-09-15 00:11 1762感谢http://sdcyst.iteye.com/ ... -
阿萨德
2011-05-16 23:37 0各位面试官,老师,同学们你们好,我叫朱阳俊,87年出 ... -
撒旦撒打算的
2011-04-19 22:30 0/*** * Excerpted from &quo ... -
sadas
2011-04-12 13:19 0/*** * Excerpted from &quo ... -
结网会辉煌季后ij
2011-02-24 10:30 0http://hunch.com/professions/ ... -
JavaScript 对象
2010-10-31 23:58 1418对象与数组 JavaScript中的对象本质上是一个关联 ... -
根据IP自动切换城市(腾讯网接口)
2010-10-16 10:57 2372<script src="http: ... -
javascript中event.keycode大全
2010-06-12 09:07 2391keycode 8 = BackSpace BackSpa ... -
event.keyCode ,event.which ,event.charCode
2010-06-12 09:00 6538javascript判断是否按回车 ... -
深入理解Javascript闭包(closure)
2010-05-31 22:07 1228感谢http://softbbs.pconline.co ... -
Aptana使用入门一:Code Assist
2009-12-14 12:07 1975两天我在《不可多得的Javascript(AJAX)开发工具 ... -
不可多得的Javascript(AJAX)开发工具 - Aptana
2009-12-14 12:05 1836自从开始做Web开发起,一直都没有找到一个很让人满意的Java ... -
Javascript刷新页面的几种方法
2009-11-21 13:14 5603Javascript刷新页面的几种方法 非模态刷新父页面:wi ...
相关推荐
JavaScript 还没有块级作用域,这意味着在 if 语句、for 循环、while 循环等语句块中定义的变量,在整个函数体内都是可见的,而不是只在语句块中可见。 在 JavaScript 中,函数中声明的变量在整个函数中都有定义。...
在JavaScript中,变量的作用范围分为两种主要类型:全局作用域和局部作用域。 1. 全局作用域(Global Scope): 全局变量是在函数外部定义的变量,或者在脚本的顶层定义的变量。它们在整个脚本或JavaScript文件中都...
- **var关键字**:使用`var`声明的变量在整个函数或全局范围内都是可见的,即使它们是在代码块(如if语句或循环)中声明的。 - **let关键字**:使用`let`声明的变量只在它被声明的代码块内可见。 - **const关键字**...
JavaScript中的变量管理是编程中非常基础且重要的概念,它涉及到变量的作用域、生命周期以及如何避免潜在的安全问题。本文将深入探讨JavaScript的全局变量与局部变量。 首先,我们要明白JavaScript的作用域划分标准...
同时,变量作为存储数据的容器,在JavaScript中拥有不同的作用域规则,决定了变量的可访问范围。 ### 函数的定义和调用 在JavaScript中,函数可以通过两种方式定义,分别是函数声明和函数表达式。函数声明是一种...
本文将深入探讨一个重要的JavaScript特性——块范围的变量和函数,这一特性对于理解和编写更清晰、更安全的代码至关重要。 首先,我们来讨论块作用域变量。在ES6(ECMAScript 2015)之前,JavaScript只支持函数作用...
JavaScript中没有块级作用域的概念,直到ES6之前,很多开发者使用立即执行函数表达式(IIFE)来模拟块级作用域,限制变量的作用范围。 闭包是JavaScript中的一个高级概念,它允许函数访问定义时的外部作用域。闭包...
在JavaScript中,局部变量是指在某个函数或块级作用域内定义的变量,其可见范围仅限于该函数或块。如果在一个函数内部不使用`var`、`let`或`const`声明变量,则该变量会自动提升为全局变量。 **示例代码**: ```...
首先,全局变量的作用域是整个JavaScript代码块,包括所有函数和代码块内部。全局变量被声明在函数外部,因此可以在任何地方被访问和修改。由于全局变量具有较大的作用域,因此容易造成命名冲突,并且在复杂的程序中...
JavaScript变量作用域是编程基础中的重要概念,它决定了变量在哪些范围内可以被访问。了解变量作用域可以帮助开发者更好地管理代码中的数据,防止意外的变量冲突,从而提高代码的稳定性和可维护性。 JavaScript中...
- **作用域规则**:决定了变量的作用范围。 - **局部作用域**:在函数内部声明的变量只在该函数内可见。 ```javascript function testScope() { var localVar = "local"; } console.log(localVar); // ...
Javascript变量作用域是编程中非常基础且重要的一个概念,它决定了代码中变量的可访问性和生命周期。在Javascript中,变量作用域有两个可能会被忽略的小特性,即with语句和try-catch语句对变量作用域的影响,以及...
JavaScript 中的变量作用域是一个非常重要的概念,它决定了变量在程序中可以被访问的范围。理解变量作用域有助于编写更加高效和可预测的代码。 首先,全局作用域指的是在 JavaScript 程序中任何位置都可以访问的...
如今,JavaScript的应用范围已经远远超出了最初的设想,它被用于开发各种类型的应用程序,包括服务器端应用程序(Node.js)和移动应用。 书中介绍了JavaScript中的基本数据类型,包括数字、字符串和布尔值。数字是...
同时,前端框架如React、Vue或Angular等,大量使用JavaScript来构建现代Web应用,进一步扩展了其在网页开发中的应用范围。 总之,"JavaScript中文经典帮助手册"涵盖了JavaScript的全面知识,无论你是初学者还是有...
在探讨JavaScript变量的作用域之前,首先需要明确什么是作用域。作用域是程序中定义变量的区域,它决定了变量可以被访问的范围。在JavaScript中,作用域分为全局作用域和局部作用域。了解这两个基本概念对理解...
- **内函数声明**:内函数声明应紧跟在变量声明之后,这有助于区分哪些变量在函数范围内。 - **语法格式**:函数名称与左括号之间不应有空格;右括号与左大括号之间应有一个空格;函数体应该缩进四个空格。 #### 八...
- 虽然题目中没有直接涉及,但在JavaScript中,函数可以访问其自身、调用它的函数以及全局作用域中的变量,形成了作用域链。这在处理异步操作、封装私有变量时非常重要。 6. **let 和 const 关键字(ES6新增)** ...
JavaScript的核心概念包括变量、数据类型、运算符、流程控制(如条件语句和循环)、函数、对象以及数组。变量在JavaScript中可以动态声明和赋值,数据类型包括基本类型(如字符串、数字、布尔值)和引用类型(如对象...