原生JS
第一章
1.JS是一种编程语言,主要生成一些特效,完成用户和页面的交互
2.引入:
内部脚本
外部脚本
<script type ="text/javascript" src=""> </script>
浏览器内核:渲染引擎 JS引擎
第二十章
第二十一章 函数进阶
1.函数定义
1> 函数声明定义:
function 函数名(参数){
代码块
}
2>函数表达式定义:
没有函数标识符,即匿名式函数表达式(可绑定变量,事件)
var 函数名 = function(参数){
代码块
}
有函数标识符,即命名式函数表达式
var 函数名 = function 函数标识符(参数){
代码块
}
函数名();
函数标识符的局限性:
调用命名式函数表达式时,用函数名+()调用,函数标识符只是一个标识符,不能调用函数
函数标识符只有在函数作用域中有效,在外面无效
函数声明定义与函数表达式定义区别:
声明定义函数时,产生声明提升
表达式定义函数时,不会产生声明提升
3>构造函数法定义:
var 变量 = new Function("形参1","形参2","方法体")
2.void:对给定的表达式进行求值,然后返回undeifed
eg:var = void 0;
<a href="javascript:void(0)"></a>
3.call和apply
相同之处:调用一个对象的一个方法
不同之处:接收的参数不一样,call把参数按顺序传递,apply把参数放在数组里传递
4.匿名函数:也叫入函数
优先表达式:(function(){} ())
函数字面量:(function(){}) ()
特点:
1> 不会污染全局对象
2>定义和调用合为一体
第二十二章 函数的三种定义与四种调用
三种定义
1> 函数声明定义,有声明提升,不会自执行,而调用
2> 函数表达式定义
匿名式函数表达式
命名式函数表达式
3> 构造函数定义
四种调用和this指向
1> 函数模式调用:this只想window
2> 方法模式调用:this指向调用它的对象
3> 构造函数模式调用:this指向新创建的对象
4> apply调用:this指向apply()里的对象,如果apply()没有参数,则指向window
第二十三章 对象进阶
创建对象的几个方法:
1.字面量/自定义创建对象
1> 先声明,后添加
2> 声明时添加
2.原生构造函数形式创建对象
eg:var obj = new Object();
obj.name = "呵呵"
3.工厂模式创建对象
4.自定义构造函数创建对象
自定义构造函数创建对象与工厂模式创建对象相比的特点:
1> 函数首字母为大写
2> 有new操作符
3> 没有return语句
4> 可以使用instanceof检测操作符检测对象类型
5> 没有显式的创建对象,而是直接将属性和方法赋给了this对象
第二十四章 回调函数
回调函数式一个函数,它作为个传参传递给另一个函数,并在主函数完成后执行
回调与同步,异步没有直接的关系,可以有同步回调,也可以有异步回调
回调函数类型:
1.DOM事件回调函数→同步回调
2.定时器回调函数→异步回调
回调函数的参数:
1.可以没有参数
2.有参数,则回调函数的参数作为与回调函数同等级的参数进行传递
1> 参数写在主函数里
2> 参数写在回调函数里
第二十五章 JS之瀑布流
谈谈你对瀑布流的了解
瀑布流是一种布局,视觉表现为参差不齐的布局,随着页面滚动条向下滚动,可以不断加载数据
瀑布流特点
1.布局:呈现出等宽不等高,参差不齐排序
2.随着页面滚动条向下滚动,可以不断加载数据,无限加载
瀑布流的应用案例:high购 蘑菇街 京东
实现瀑布流的方式有哪些?有什么优缺点
1.原生JS:效率高,兼容好,逻辑要求高
2.JQ:开发效率高,运行速度快
3.C3:开发效率高,兼容不好
从瀑布流的特点出发,瀑布流的底层实现原理分为两部分,分为'页面布局'和'图片加载'功能
第二十六章 构造函数与普通函数
原生构造函数语法格式
var x = Function('x','y',alert(x+y)')
自定义构造函数语法格式
function Person(name,age){
this.name = name
this.age = age
}
原生构造函数应用
1.通过原生构造函数形式创建数组
var arr = new Array()
2.通过原生构造函数形式创建对象
var obj = new Object()
3.通过原生构造函数形式创建时间
var ddate = new Date()
4.通过原生构造函数形式创建字符串
var str = new String()
函数声明定义和函数表达式定义的函数,在调用时有区别吗?简单阐述
函数声明定义的函数可以在声明之前调用,因为有函数声明的提升
函数表达式定义的函数只能在声明之后调用
函数表达式定义函数分为两种,有区别
匿名函数表达式和命名式函数表达式
区别:
匿名式函数表达式没有函数标识符
命名式函数表达式有函数标识符
call和apply区别:
相同之处:调用一个对象的一个方法
不同之处:call把参数按顺序传递 apply把参数放在数组里传递
第二十七章 公私有变量及链式作用域
私有变量:私有的变量外部无法访问
公有变量:外部都可以访问
eg:function Person(){
var name = "熊大"; //私有内部变量
this.age = 20;
}
var person = new Person();
console.log(person,age); => 20
console.log(person.name); =>undefined
私有函数:外部无法执行
公用函数:外部都可以访问执行
全局变量越多越好吗?为什么?
不好,从变量的生命长度去考虑,全局变量直到页面关闭才释放掉所占用的内存,所以全局变量越多占用内存越多性能越差,脚本运行速度越慢,所以"全局变量是魔鬼"
特权方法:
如果想在函数外部访问私有变量或私有函数,可以通过构造特权方法
变量的链式作用域:
父对象的所有变量,对子对象都是可见的,反之不成立
第二十八章 闭包
概念:有权访问另一个函数作用域中变量或私有函数,可以通过构造特权方法
类型:闭包是函数
作用:访问另一个函数作用域中的变量
原理:通过匿名式函数把局部变量主流在内存里,可以减少全局变量的使用
优点:封装性,减少了全局变量使用频率,减少污染
缺点:由于闭包作用域中返回的局部变量资源不会被立即回收,所以可能会占用更多内容,会导致卡顿
解除引用:btn = null;
第二十九章 cookie与存储
cookie的格式:
name = value; [expires = date];[path = path];[domain = domain];[secure]
写入cookie:document。cookie = "user = 熊大"
编码:encode URI Component
解码:decode URI Comronent
设置时间:
var date = new Date()
date.setDate(date.getDate()+T);
document.cookie = "user =" + encode URI Component("熊大")+";
expires = "+date"
alert(decode URI Component(docunment.cookie));
手动清理cookie:
1.date.setDate(date.getDate()-1)
2.date = new Date(0)
第三十章 cookie局限性与其他存储方式
cookie局限性:
1.数量限制:20个
2.清理方式:每个浏览器都会清理,方式不一样
3.大小限制:不超过4095字节
4.安全性:将数据存储在客户端,安全性较低
抛出异常:throw new Error()
其他存储方式:
1.sessionStorage会话存储
session Storage.setItem("name","熊大")
session Storage.removeItem("name") (移除)
alear(session Storage.getItem("name"))
2.听过属性方式会话存储
session Storage.name = "熊大"
session Storage.removeItem("name") (移除)
3.local Storage
第三十一章 cookie与session小结
1.你对cookie的了解:
cookie是一小段文本信息,储存于客户端,每当用户访问站点时,程序都可以读取包含cookie的信息
2.cookie类型:会话型cookie和持久型cookie
3.cookie与session区别:大小限制,储存位置,性配,安全性
补充
今天的文章原生JS总结_原生js和jquery的区别分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/71924.html