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的一些基本原理普遍存在这里或者 ...
随机推荐
- dpm-release3.1在windows下的配置
dpm-release3.1在windows下的配置 dpm是做目标检测objecjt detection的经典方法.dpm系列代码默认是在linux和mac下运行测试过的,windows下默认是不能 ...
- 【BZOJ-3675】序列分割 DP + 斜率优化
3675: [Apio2014]序列分割 Time Limit: 40 Sec Memory Limit: 128 MBSubmit: 1420 Solved: 583[Submit][Statu ...
- Matlab中fsolve传递系数变量
比如AX= b,求解x,但是要找不同b下的x,100个b. fsolve(‘fun,[X0,b])这样是不行的,因为这样的话b也当成了变量,也会变. 两种方法 1.全局变量 global b;多个的话 ...
- 环信webim1.1.2版本在windows下npm环境搭建错误解决
1.1.2版本的webim从ui到整体的代码结构都做了很大改变,从代码结构上采用node.js的环境进行开发和打包,最终打包的输出项目,不依赖node.js的环境进行运行,得益于webpack的打包实 ...
- bzoj4419[SHOI2013]发微博
题意:给你一个初始没有边,点权均为0的无向图,三种操作:加边,删边,选择一个点将当前与之相邻的点(不包括自身)的点权+1,询问最后所有点的点权. 据说正解是set维护每个人的朋友,然后考虑每次加边.删 ...
- 数据结构作业——sights(最短路/最近公共祖先)
sights Description 美丽的小风姑娘打算去旅游散心,她走进了一座山,发现这座山有 n 个景点,由于山路难修,所以施工队只修了最少条的路,来保证 n 个景点联通,娇弱的小风姑娘不想走那么 ...
- FZU みねちゃんの修罗场(从一堆出现三次的数中找出出现两次的数)
みねちゃんの修罗场 Time Limit: 5000 mSec Memory Limit: 1024 KB Description みねちゃん是个成绩优秀大学二年级学生,本来是和像自己妹妹一般 ...
- Beta版本冲刺第三天 12.9
一.站立式会议照片: 二.项目燃尽图: Android端 后台 三.项目进展: 成 员 上次完成任务 今天完成任务 明天要做任务 问题困难 心得体会 胡泽善 完成用户简历的填写和查看 日期合理性的判断 ...
- JavaWeb---总结(十七)JSP中的九个内置对象
一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...
- chown -R命令的使用
chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID:组可以是组名或者组ID:文件是以空格分开的要改变权限的文件列表,支持通配符.系统管理员经常使用chown命令,在将文件拷贝 ...