js重点
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script type="text/javascript">
// function add (){
// var a = 3;
// return a
// }
//一般情况下,函数声明的局部变量,在函数调用完之后就会被销毁掉
// console.log(add())
// add()
//
//
// function add(){
// var a = 3
// return function(){
// return a
// }
// }
//
// abc = add()
// console.log(abc()) //闭包的好处 // var list = [f0,f1,f2]
// f0()---->0
// f1()---->1
// f2()---->2
//假设需要一个列表,这个列表存放n个函数,只要调用list[i](),那么就会返回i //-----------------------------------案例1:
// var list = []
//
// for(var i=0;i<3;i++){
// var temfn = function(){
// return i
// }
// list.push(temfn)//将函数添加进列表
// }
//
// console.log(list)
// list[0]() //====> 3 //----------------------------------案例1:解决方案 var list = []
for (var i=0;i<3;i++){
//匿名函数通过自己调用自己执行,获取i值传入num参数
//num参数这个变量被返回的匿名函数所引用,所以参数num不会被销毁,使得num参数可以保留。
var temfn = (function(num){
return function(){
return num
}
})(i)
list.push(temfn)
} // console.log(list[0]()) function Counter(){
var num = 0
return function(){
num ++
return num;
}
} var abc = Counter()
console.log(abc())
console.log(abc())
console.log(abc()) //能不用闭包,就尽量不用闭包,因为会导致内存的可使用量下降(内存泄漏) </script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script type="text/javascript">
// a = add(3,4)
// console.log(a) //将一个匿名函数给到1个变量
// var add = function(a,b){
// a = a + 1;
// b = b + 1;
// return a+b
//
// console.log(123)
// } //直接申明函数的方式
// function add (a,b){
// a = a + 1;
// b = b + 1;
// return a+b
// }
//注意:直接申明函数的方式,浏览器会自动将它提升到最前面。 //js不会对函数的参数进行检查
// a = add()
// console.log(a)
//
//返回值通过return返回出去,return语句执行之后,不会再继续执行函数后面的内容。 // function add(a=3,b=4){
// console.log(a,b)
// a = a + 1;
// b = b + 1;
//
// return a+b
// } function add(a,b){
if(a==undefined){
a = 3
}
if(b == undefined){
b = 4
}
a = a + 1;
b = b + 1; return a+b
} console.log(add())
var student = {name:'xx',age:16} function abc(){
//在函数里面,用var申明使这个函数的局部变量,在其他地方是拿不到的
var num = 3
var student = {name:'666'}
return student.name
} console.log(abc())
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script type="text/javascript">
//1、字面量的方式,偶尔创建一个特定的对象,那么就是最简单和便捷方式
var student = {
name:'xx',
age:'xx'
}
//2、构造函数的方式
var student = {}//构造一个新的空对象
var student = new Object()//构造一个新的空对象 student.name = 'xx'
student.age = 'xx' //3、创建一个函数来构造一个对象,工厂模式
function Student(name,age){
var student = {}
student.name = name;
student.age = age
return student
} var s1 = Student('xx','xx');
var s2 = Student('mingzi','nianling') //4、构造一个构造函数,通过构造函数,实例化一个对象
function Student(name,age){
this.name = name;
this.age = age
this.showName = function(){
console.log(this.name)
}
//没有返回值
} var s3 = new Student('gzhanshu','xxx')
//如果使用了new 调用函数,那么首先会创建1个对象,并且将这个对象赋值s3,如果函数里有this,那么这个this就是这个新创建的对象
var s4 = Student('yyy','uuu')//如果没有new,就是一个普通函数,那么普通函数没有返回值,就是未定义 </script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script type="text/javascript">
//构造一个构造函数,通过构造函数,实例化一个对象
function Student(name,age){
this.name = name;
this.age = age
console.log(name)
//没有返回值
} function Man(){
this.run= function(){
console.log('会跑')
}
this.showName = function(){
console.log(this.name)
}
} var man = new Man()
//设定构造函数对象的属性prototype,将原型对象给到这个prototype属性
Student.prototype = man var s3 = new Student('gzhanshu','xxx') //原型对象也可以有原型,那么原型的原型所形成的链式,那么就叫做原型链
//原型里面属性方法可以被,实例化的对象共享。大大的减少内存的消耗
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script type="text/javascript">
//对象也存放一组数据的地方
//student,学生姓名,学生年龄,会考试,会读书,会唱歌 //字面量的方式
var student = {
name:'老王',
age:'30',
dizhi:'隔壁',
isMan:true,
son:{name:'xiaowang',age:3},
action:function(){
console.log('拐卖良家妇女')
}
}
console.log(student) //想要获取里面的属性
// student['属性值']
// student.属性值
// 我们如果想要用变量的情况下,那么就要用中括号。 // student.xuehao = 123456789
// student['xuehao'] = 12432342
// console.log(student) var student2 = new Object()
student2.name = 'xxzz'
student2.age = 16
console.log(student2)
</script>
</body>
</html>
js重点的更多相关文章
- JS重点特性——闭包详解
闭包特性:可以让定义好的函数作用域在调用时发生改变,具体说,调用运行时,可以让(定义时)作用域外其他函数访问到本函数的局部变量甚至参数.举例代码如下: <!DOCTYPE html> &l ...
- js重点——作用域——作用域分类(三)
一.作用域可以分为全局作用域,局部作用域(函数作用域)和块级作用域. 1.全局作用域 代码在程序中的任何位置都能被访问到,window对象的内置属性都拥有全局作用域. <script> v ...
- js重点——作用域——简单介绍(一)
一.作用域 定义:在js中,作用域为变量,对象,函数可访问的一个范围. 分类:全局作用域和局部作用域 全局作用域:全局代表了整个文档document,变量或者函数在函数外面声明,那它的就是全局变量和全 ...
- js 重点 (转载)
- js重点--原型链继承详解
上篇说过了关于原型链继承的问题,这篇详解一下. 1. function animals(){ this.type = "animals"; } animals.prototype. ...
- js重点--this关键字
推荐博客:https://www.cnblogs.com/huaxili/p/5407559.html this是JavaScript的一个关键字,表示的不是对象本身,而是指被调用的上文. 主要用于以 ...
- js重点--原型链
通过将一个构造函数的原型对象指向父类的实例,就可以调用父类中的实例属性及父类的原型对象属性,实现继承. function animals(){ this.type = "animals&qu ...
- js重点--匿名函数
推荐博客:https://www.cnblogs.com/pssp/p/5216668.html 函数是必须要有函数名的,不然没有办法找到它,使用它. 如果没有名字必须要有一个依附体,如:将这个匿名函 ...
- js重点--闭包
闭包: 1.获取到局部变量,相当于是函数局部与外部的桥梁 2.使局部变量保存在内存中,不被回收 <script> function outerFn() { var outerVar = 0 ...
随机推荐
- Python学习笔记整理总结【Django】:Model操作(一)
Model操作(一) 一.Django ORM基本配置 ORM:关系对象映射(Object Relational Mapping,简称ORM)db Frist:到目前为止,当我们的程序涉及到数据库相关 ...
- Exceptionless 5.0.0 本地Docker快速部署介绍
在之前我有专门写两篇文章介绍过Exceptionless这款开源日志项目的使用和部署,但是当时是基于4.1.0版本(2017年的release),时隔两年多Exceptionless也推出了5.0.0 ...
- .NET进阶篇-语言章-1-Generic泛型深入
内容目录 一.概述二.泛型的好处三.泛型使用1.泛型方法2.泛型类.泛型接口四.泛型的功能1.泛型中的默认值2.约束3.协变逆变5.泛型委托4.泛型缓存五.总结 一.概述 泛型我们一定都用过,最常见的 ...
- 30 分钟快速入门 Docker 教程
原文地址:梁桂钊的博客 博客地址:http://blog.720ui.com 欢迎关注公众号:「服务端思维」.一群同频者,一起成长,一起精进,打破认知的局限性. 一.欢迎来到 Docker 世界 1. ...
- Golang 实现设计模式 —— 装饰模式
概念 "用于代替继承的技术,无需通过继承增加子类就能扩展对象的新功能" "动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活" 何时 ...
- Comparable和Comparator 是什么以及区别
一.Comparable和Comparator Comparable可以认为是一个内比较器,实现了Comparable接口的类,类的实例与实例直接可以比较,依赖compareTo方法的实现,compa ...
- Vue-CLI项目中路由传参
Vue-CLI项目中路由传参 一.标签传参方式:<router-link></router-link> 第一种 router.js { path: '/course/detai ...
- sql数据文件导入数据库
1.首先通过xshell连接数据库服务器,执行命令mysql -u root -p 命令,按照提示输入密码.连接上数据库. 2.在连接终端上执行命令create database JD_Model; ...
- Windows系统调用中的系统服务表描述符
Windows内核分析索引目录:https://www.cnblogs.com/onetrainee/p/11675224.html Windows系统调用中的系统服务表描述符 在前面,我们将解过 ...
- PHP array_replace
1.函数的作用:替换数组的元素 2.函数的参数: @params array $array1 被替换的数组 @params array $array2 替换的数组 @params array $a ...