JavaScript的两个特征:
- 不需要声明就可以使用变量
- 有隐含的全局概念,即不声明的任何变量都会成为全局对象(this)的属性
function sum(x, y) {
// 不推荐写法: 隐式全局变量
result = x + y;
return result;
}
alert("sum="+sum(3,3) + " result="+result);
// 结果:sum=6 result=6
// 说明:如果不调用sum函数,直接运行alert(result),结果就是 result 未定义, 因此、尽量使用var声明变量.
*使用任务链进行部分var声明
function sum() {
var a = b = 0;
// a 是局部变量、b是全局变量
}
此现象发生的原因在于这个从右到左的赋值,首先,是赋值表达式b = 0,此情况下b是未声明的。这个表达式的返回值是0,然后这个0就分配给了通过var定义的这个局部变量a。
隐式全局变量和明确定义的全局变量间有些小的差异,就是通过delete操作符让变量未定义的能力。
- 通过var创建的全局变量(任何函数之外的程序中创建)是不能被删除的。
- 无var创建的隐式全局变量(无视是否在函数中创建)是能被删除的。
这表明,在技术上,隐式全局变量并不是真正的全局变量,但它们是全局对象的属性。属性是可以通过delete操作符删 除的,而变量是不能的:
// 定义三个全局变量
var global_var = 1;
global_novar = 2; // 反面教材
(function () {
global_fromfunc = 3; // 反面教材
}());
// 试图删除
delete global_var; // false
delete global_novar; // true
delete global_fromfunc; // true
// 测试该删除
typeof global_var; // "number"
typeof global_novar; // "undefined"
typeof global_fromfunc; // "undefined"
JavaScript中,你可以在函数的任何位置声明多个var语句,并且它们就好像是在函数顶部声明一样发挥作用,这种行为称为 hoisting(悬置/置顶解析/预解析)。当你使用了一个变量,然后不久在函数中又重新声明的话,就可能产生逻辑错误。对于JavaScript,只 要你的变量是在同一个作用域中(同一函数),它都被当做是声明的,即使是它在var声明前使用的时候。看下面这个例子:
range = "global"; // 全局变量
function show() {
alert(range ); // "undefined"
var range = "local";
alert(range ); // "local"
}
show();
在coding中,编码规范非常重要,可以让自己和团队其他成员更易阅读和理解。
- 缩进
- 空格
- 分号
- 变量定义(个人偏好 各单词用下划线分隔)
- 方法定义(公有和私有应区分)
- 常量定义(个人偏好 全部大写)
- 注释
努力编写高质量的javascript代码!
javascript允许使用一种简洁而可读的记法来创建数组和对象.
var customer = new Object();
customer.firstName="yongfei";
customer.lastName="yang";
等价于:
var customer={firstName:'yongfei',lastName:'yang'}
对象字面量(object literal):一个名值对列表,每个名值对之间用逗号分隔,并用一个大括号括起。各名值对表示对象的一个属性,名和值这两部分之间用一个冒号分隔。
数组字面量(array literal):这是一个用逗号分隔的值列表
函数字面量:前面是一个function关键字,后面是一个函数名(可选)和参数表。然后是函数体,包围在大括号中。
prototype使用技巧
- JavaScript为每一个类型(Type)都提供了一个prototype属性,将这个属性指向一个对象,这个对象就成为了这个类型的“原型”,这意味着由这个类型所创建的所有对象都具有这个原型的特性。另外,JavaScript的对象是动态的,原型也不例外,给prototype增加或者减少属性,将改变这个类型的原型,这种改变将直接作用到由这个原型创建的所有对象上.
- 如果给某个对象的类型的原型添加了某个名为a的属性,而这个对象本身又有一个名为a的同名属性,则在访问这个对象的属性a时,对象本身的属性“覆盖”了原型属性,但是原型属性并没有消失,当你用delete运算符将对象本身的属性a删除时,对象的原型属性就恢复了可见性。利用这个特性,可以为对象的属性设定默认值
- 将一个对象设置为一个类型的原型,相当于通过实例化这个类型,为对象建立只读副本,在任何时候对副本进行改变,都不会影响到原始对象,而对原始对象进行改变,则会影响到副本,除非被改变的属性已经被副本自己的同名属性覆盖。用delete操作将对象自己的同名属性删除,则可以恢复原型属性的可见性。
分享到:
相关推荐
javascript学习javascript学习javascript学习javascript学习
JavaScript学习(一) JavaScript是一种广泛应用于网页和网络应用的脚本语言,由 Netscape 的 Brendan Eich 在1995年发明。它主要用于客户端的网页交互,赋予网页动态功能,如响应用户操作、处理数据、与服务器通信...
这份"JavaScript学习指南"高清PDF,无疑为想要深入理解JavaScript的初学者或有一定基础的开发者提供了宝贵的资源。下面,我们将深入探讨JavaScript的一些关键知识点。 1. **基础语法**:JavaScript的基础包括变量、...
JavaScript学习指南 JavaScript,一种广泛应用于网页和网络应用的脚本语言,是互联网上最流行的编程语言之一。它主要用于客户端的交互式网页开发,也可以在服务器端通过Node.js平台进行后端开发。JavaScript与Java...
这个“JavaScript帮助学习文档”包含了丰富的资源,旨在帮助初学者和进阶者深入理解和掌握JavaScript的核心概念。 首先,JavaScript的基础知识是至关重要的。这包括变量、数据类型(如字符串、数字、布尔值、数组、...
本“JavaScript学习指南”源代码包含了深入理解并掌握JavaScript编程的关键知识点。 一、基础语法 JavaScript的基础语法包括变量声明(var、let、const)、数据类型(如字符串、数字、布尔值、null、undefined、...
这份"JavaScript学习帮助文档"是专为初学者设计的,旨在帮助他们掌握JavaScript的基础知识和实际应用技巧。 首先,JavaScript的基本语法是学习的起点。它是一种基于原型的、动态类型的、弱类型的脚本语言。这意味着...
JavaScript学习资料大全,包括《JavaScript实例》、《JavaScript教程》、《Javascript语言教程》、《JavaScript技术讲座》、《Javascript源码大全1.0版》、《javascript教程.chm》、《JavaScript源代码集》、...
JavaScript学习指南第三版,学习JavaScript的同学欢迎来下载
这份"非常全面的JavaScript学习资料"压缩包,包含了11个深入学习JavaScript的文件,旨在为学习者提供一个详尽且丰富的学习路径。 1. **基础概念**:JavaScript的基础包括变量、数据类型(如字符串、数字、布尔值、...
Javascript学习是Android客户端目前最全面的免费离线Javascript学习书籍,从Html入门到Html样式设计,再到Javascript,提高网页设计能力。主要内容包括: 1、Html基本标签 2、Html表单知识 3、Web2.0(Div+Css样式)...
JavaScript是一种广泛应用于...总的来说,这份JavaScript学习资料包为你提供了一个系统学习和深入理解JavaScript的平台。通过深入阅读、实践和不断探索,你将能够熟练掌握这门语言,为你的Web开发生涯打下坚实基础。
这本“JavaScript学习书籍PDF格式”提供了全面深入的学习资源,特别强调实践中的例子,旨在帮助读者掌握JavaScript的精髓和应用。 首先,书名“JavaScript The Good Parts”揭示了本书的重点——探讨JavaScript语言...
JavaScript学习工具.rarJavaScript学习工具.rarJavaScript学习工具.rarJavaScript学习工具.rarJavaScript学习工具.rarJavaScript学习工具.rar
这份"JavaScript学习PPT"是专为初学者设计的,旨在帮助他们掌握JavaScript的基础概念和核心技能。 首先,JavaScript的核心构成包括变量、数据类型、控制结构、函数和对象。变量是存储数据的地方,JavaScript支持...
个人Javascript学习笔记 精华版 本资源为个人Javascript学习笔记的精华版,涵盖了Javascript的基础知识、事件处理、对象和系统函数、浏览器对象等方面的内容。下面是对每个知识点的详细说明: 1. 什么是JavaScript...
这份"Javascript学习资料"包含了对这门语言深入理解和实践的关键知识点。 标题中的"Javascript学习资料"表明这是一个针对初学者或者希望提升技能的开发者的学习资源集合。其中包含了一本名为"10步学习 JavaScript....
本书“JavaScript学习指南”旨在帮助初学者和有经验的开发者深入理解和掌握JavaScript的核心概念和技术。 首先,JavaScript在网页中的主要作用是处理用户交互、操作DOM(文档对象模型)、进行AJAX(异步JavaScript...
本资源包"JavaScript学习资料全面整理"显然是为了帮助初学者和进阶者深入理解这门语言,包含了各种资源,下面将对JavaScript的一些关键知识点进行详细阐述。 1. **基础概念**:JavaScript是一种解释型、弱类型、...