JavaScript基础整理(2)
接下来的重点是函数。我们知道函数是特殊的对象。
函数作用域和声明提前。JavaScript中没有块级作用域,只有函数作用域:变量在声明它们的函数体以及这个函数体嵌套的任意
函数体内都要定义。
function test(t){ // t在这个函数体内都有定义
var i=0;
if(t>0){
var j=0; // j 不仅仅在if语句中,在整个函数体内都有定义
for(var k=0;k<10;k++){ //k 不仅仅在for循环内,在整个函数体内都有定义
console.log(k); // 输出 0-9
} // end for
console.log(k); // 输出 10
} //end if
console.log(j) ; // 输出 0
}
JavaScript的函数作用域是指在函数内声明的所有变量在函数体内始终是可见的。
作为命名空间的函数:
在函数中声明的变量在整个函数体内都是可见的(包括在嵌套的函数中),在函数的外部是不可见的。不在任何函数内声明的
变量是全局变量,在整个JavaScript程序中都是可见的。这就带来一个问题,当你把不同的JavaScript代码引入到同一个程序中时,无法
确定引入的变量是否已经定义,这样代码就会发生冲突。解决的方法就是将代码放入一个函数内,然后调用这个函数。这样全局变量就
变成了函数内的局部变量。
function mymodule(){
// 模块代码
// 这个模块所使用的所有变量都是局部变量,而不是污染全局命名空间
}
mymodule(); //不要忘了还要调用这个函数
可以直接定义一个匿名函数,并在单个表达式中调用它:
( funtion(){ // mymodule()函数重写为匿名的函数表达式
//模块代码
}() ); //结束函数定义并立即调用它
这种定义匿名函数并立即在单个表达式中调用它的写法非常常见,已经成为一种惯用法了。
我们知道在JavaScript中一切皆对象,JavaScript全局变量是全局对象的一个属性。而局部变量是跟函数调用相关的
某个对象的属性。
如果嵌套函数作为方法调用,其this值指向调用它的对象。如果嵌套函数作为函数调用,其this值不是全局对象(非严格模式下),
就是undefined(严格模式下)。
类
在JavaScript中也可以定义对象的类,让每个对象都共享某些属性,这种共享的特性是非常有用的。(思考:有什么用?怎样用?)
在JavaScript中,类的实现是基于其原型继承机制的。类的所有实例对象都从同一个原型对象上继承属性。因此,原型对象是类的核心。
定义构造函数既是定义类,并且类名(构造函数名)首字母要大写。
JavaScript中类的一个重要特性是"动态可继承"。
定义类是模块开发和重用代码的有效方式之一。
JavaScript基础整理(2)的更多相关文章
- JavaScript基础整理(1)
最近读了<JavaScript权威指南>这本书,闲来无事对自认为重要的知识做了些整理,方便以后查阅. JavaScript中的最重要的类型就是对象,对象是名/值对的集合,或字符串到值映射的 ...
- JavaScript基础整理
在HTML页面中嵌入JavaScript代码的三种方式 1.内嵌 写在<head>标签或<body>标签中 <script> function displayTim ...
- javascript基础(整理自廖雪峰)
不要使用==比较,始终坚持使用===比较false == 0; //返回true. 这种情况, 它会自动转换数据类型再比较false === 0; //返回false. 建议用这种方式 NaN === ...
- javascript基础(整理自手册网)
变量 person=null; //清空变量 carname="Volvo"; //赋值给未声明的变量, 它将会变成全局变量, 即使在函数内部 window.carnam; //所 ...
- javascript 基础整理
js编码标准 参考 数据类型 注意事项
- JavaScript基础知识整理(2)
15.处理图像 注意:(1)在写js文件时,尽量将函数的声明往后写,将函数调用写在前面,这样能够使代码结构很清晰. (2)一个网页中翻转器一般超过3个,所以使用for循环减少重复使用翻转器代码的次数. ...
- javascript基础入门知识点整理
学习目标: - 掌握编程的基本思维 - 掌握编程的基本语法 typora-copy-images-to: media JavaScript基础 HTML和CSS 京东 课前娱乐 众人皆笑我疯癫,我笑尔 ...
- 一步步学习javascript基础篇(3):Object、Function等引用类型
我们在<一步步学习javascript基础篇(1):基本概念>中简单的介绍了五种基本数据类型Undefined.Null.Boolean.Number和String.今天我们主要介绍下复杂 ...
- Javascript基础回顾 之(三) 面向对象
本来是要继续由浅入深表达式系列最后一篇的,但是最近团队突然就忙起来了,从来没有过的忙!不过喜欢表达式的朋友请放心,已经在写了:) 在工作当中发现大家对Javascript的一些基本原理普遍存在这里或者 ...
随机推荐
- Hive 中的分号问题
1. hive表中有一列值,是以 分号 ; 为分隔符连接存储的 1470047164;1470047628;1470049068;1470048978;1470048922;1470047658;1 ...
- oracle 10g 安装时字符集的选择,和后边的修改
先用system和密码登陆SQLPLUS,然后: 1.用sys登录到oracle中 connect sys/密码 as sysdba; (能直接以sys登陆到sqlplus吗?)2.开始修改编码 sh ...
- 【BZOJ-4518】征途 DP + 斜率优化
4518: [Sdoi2016]征途 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 230 Solved: 156[Submit][Status][ ...
- Uva10881 Piotr's Ants
蚂蚁相撞会各自回头.←可以等效成对穿而过,这样移动距离就很好算了. 末状态蚂蚁的顺序和初状态其实是相同的. 那么剩下的就是记录每只蚂蚁的标号,模拟即可. /*by SilverN*/ #include ...
- phpcms /api/phpsso.php SQL Injection Vul
catalogue . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 Relevant Link:2. 漏洞触发条件3. 漏洞影响范围4. ...
- PHP Datatype Conversion Safety Risk、Floating Point Precision、Operator Security Risk、Safety Coding Principle
catalog . 引言 . PHP operator introduction . 算术运算符 . 赋值运算符 . 位运算符 . 执行运算符 . 递增/递减运算符 . 数组运算符 . 类型运算符 . ...
- OrCAD Capture使用记录
1.安装 ①修改host_ID为主机名称(如果填不对,安装过程会提示你再填一次):其后跟的是机子的MAC地址,用ipconfig /all 可以查看. ②下一行的FLEMlm,后面跟的是文件cdslm ...
- shell命令locate
介绍 linux上做维护的时候经常会去查找某个文件路径 如果不需要特殊的查找匹配(比如时间 大小...) 格式化的输出(此处用find) 建议用locate命令 因为locate命令查找速度非常的快 ...
- java 环境变量 设置 问题
问题按照网上教程配置好了 tomcat可以用了.但是发现java不能用. 网上教程(类似教程太多了 ,就不 具体说了 http://jingyan.baidu.com/article/f96699b ...
- python中set使用
In [2]: a = set() # 常用操作1 In [3]: a Out[3]: set() In [4]: type(a) Out[4]: set In [5]: b = set([1, 3] ...