一. js中的闭包概念
代码模型: (function(){ ******* //里面是书写具体函数的代码 ******* })();
小括号的作用:
a. 第一种是表示代码分割的作用;
b. 第二种是表示表示一个运算符,表示它要运行的作用(比如上边一行代码中最后一个小括号就表示运行的意思);
二, 如何创建自己的js库
代码模板为: (function(){
function $(){
// 代码
}
window[ 'ic' ]={}; // window[ 'namespace']={} 命名空间
windwo[ 'ic' ][ '$' ]=$;
})();
三, js的常见问题
1. js是区分大小写的;
2. js中的单引号、双引号的区别(单引号里可以有双引号,双引号里面可以有单引号,单引号里有单引号时就需要使用转义字符“”);
3.小括号的作用有两种,一种是分割代码的作用,另一种是运算符,执行函数的作用;
4. 函数的调用和引用的区别;
var too = example(); // 把example的函数返回值赋值给too变量。
var too = example; // 把example的函数指针(函数的一个引用)的一个赋值;
5. 换行符,“”,浏览器里不显示,换行的作用。另一种是用“+”号连接符连接;
6. 分号和大括号的可选规则;(每行结束之后要加分号结束);
7. 重载,js中是不支持重载的,当两个相同的函数是,只加载最后一个函数的代码内容来覆盖前面的函数;
8. js中的作用域和闭包的问题;(闭包:是与作用域相关的一个概念,它指的是内部函数即使是外部函数执行完成并终止后仍然可以访问其外部函数的属性)
四.js是基于对象的多范式的编程语言
1.多范式是指:js既支持面向过程的编程又支持面向对象编程的多个方式的意思。(少了对象就什么也做不了)js对象就是键值对的集合
抽象性,封装性,继承性
抽象性:(抽取核心数据,不在特定条件下不知道是什么)
封装性:(对象将数据与功能组合到一起,即封装)
对象:是将属性与方法封装起来 ——》方法:是将过程封装起来
继承性: 自己没有,别人有,拿过来成为自己的东西
继承是实现复用的一种手段 类:是一个模板,它规定了一个对象应该有什么属性很什么方法
js:是没有继承的语法,一般都是按照继承的理念实现成员扩展实现继承(导致:js继承的方法非常多)
js继承最常用的方法是混入
五,面向对象编程的面向就是“使用”的意思
1.抽取对象:(名词提炼法),例如:我想喝咖啡。这里面的名词有:我,咖啡。我们可以看成两个对象(我和咖啡)
2.分析属性与方法:(动词提炼法),例如上例子的“想”,就可以视为方法
六,js中值类型与引用类型的区别
值类型的存储特点:将变量内的全部数据复制一份,存储给新的变量
引用类型的:变量中存储的是地址而不是变量
六,深拷贝和浅拷贝的区别
浅拷贝如下图
六,对象的动态特性
例子如下:
对象的属性访问有两种:
注意:关联数组访问时[](方括号中必须是字符串“name”,而不能是变量name,如果是变量,则应先声明var name=“name”才可以使用这种方法)
关联用法