- 博客(17)
- 收藏
- 关注
原创 创建对象的方式
一. 字面量方式a) 特点:一次只能创建一个b) 优点:简单,直观.适用于只需要创建一次的情况(设计模式中的单例模式)c) 缺点:不能批量创建对象,一次只创建一个对象.如果需要同事创建多个同类型的对象则不能使用字面量的方式d) 例如: var a={} 直接赋值 var b ={ name:’越’} 二. 工厂模式a)
2017-06-22 18:17:07
294
原创 js中的this
JS中的this是一个对象.它的值不确定,也不能确定.因为他是一个动态的,只会在代码执行的时候在能确定.目前,this出现的位置有两种即function内部和function外部1.它在function的外部 没有function关键字把它包起来。 它的值固定是: window 例如 console.log(this) 值就是window2. 在functi
2017-06-22 18:09:16
241
原创 原型与原型链
原型有两种:1为显示原型,2为隐式原型1. 显示原型a) Prototypeb) 每个函数都有一个显示原型prototype当然函数也有隐式原型c) 原型就是函数的一个属性,这个属性名叫做prototyped) 这个属性即prototype的类型是object2. 隐式原型a) __proto__b)
2017-05-25 19:01:32
341
原创 属性的分类
我们按照属性的来源,即自己定义的和继承过来的,分为两类a) 自有属性:自己定义的b) 原型属性:继承过来的比如我们定义一个对象 var a = {name:’zhangsan ’ ,age :’ 20’} 其中的name和age就是我们自己定义的,叫自有属性, 而我们console 这个对象a时,下面还有__proto__这个
2017-05-25 18:57:02
2423
原创 属性
聊一聊属性:属性的集合构成了对象.知道了什么是属性,那么属性又有哪些特征: 属性有四个特征.每一个都有四个特征他们分别是:1. configurable: 可配置的 怎么理解: 就是能不能被删除 默认是true2. writable: 可修改的
2017-05-25 18:55:35
257
原创 for in
for in用法; var a={ name:’zhangsan’, age:’18’} for(var 变量名 in 对象or数组 ){ 代码 A对象[变量名] 注意变量名不加引号 当我们console的时候console 变量名输出
2017-05-25 18:54:34
190
原创 oop面向对象
首先是定义:什么是对象 对象就是属性的无序集合, 每个属性存放一个 原始值or对象or函数既然是属性的无序集合,那么属性的含义顾名思义,那么属性是什么: 属性就是一个个的键值对. 也就是 属性名:属性 一分为二,首先是属性名: 什么可以做属性名, 既然属性的名字,所以我们一般是用字符串来命名的,当然,如果自己乐意.也可以用
2017-05-25 18:53:08
230
原创 闭包
在a函数中定义了b函数,而在b函数里使用了a函数的变量,就会产生闭包,我们说b就是一个闭包.闭包的作用:可以延长变量的作用域;一个经典的使用是: var lis = document.getElementsByTagname(‘li’); for(var i =0; i lis[i].onclick= f
2017-05-25 18:50:32
206
原创 函数的立即执行
有时候,我们需要代码只执行一次,并且执行这段代码时,不会干扰到其他值的变化,就需要函数的立即执行了常见的三种书写形式有 ( function(){} )() 这是jquery的玩法( function(){}() )+function(){}() 这三个是bootstrap.js的玩法-function
2017-05-25 18:49:57
255
原创 执行上下文
一个个人认为很重要的东西,然而却只要了解就可以的东西重要是因为他可以帮助我们更好的理解浏览器执行代码的过程,学会基本就 明白的变量在函数中调用时值的变化情况.在调试面板中 callstack中有一个anonymous 是全局的执行上下文,仅此一个 在函数调用时,在call stack每个函数都会产生一个函数执行上下文,名字就是函数名,调用一次,就有一个,调用
2017-05-25 18:45:35
439
原创 arguments
arguments是一个类数组对象,getElementsbyTagname()得到的一样是类数组对象arguments的作用,其实就是因为js没有多态里 重载,即f(1),f(1,2),f(1,2,3),这样的用法,所以用了个多态,把参数先保存到arguments中,也就是说f(arguments);erarguments的值其实就是类数组的[1],[1,2],[1,2,3],所以就是f([
2017-05-25 18:44:30
174
原创 函数和参数
函数:个人对函数的理解,函数就像是我能做一件事,调用函数就是去做这件事,参数就是原材料或工具 ,而一般我们是要参数的,当然类似这种Date.now()是不要参数的,所有的参数都有返回值,这个值return出来,如果不写return则默认是undefined形参和实参 很简单,形参是定义函数时的参数,实参是调用函数时的参数. 玩法:var a = 1;function
2017-05-25 18:38:08
322
原创 数据存储及堆栈
定义一个变量,他没有类型之分,但是他的数据是有类型之分的基本数据类型是存储在栈中的(堆栈是数据结构的内容,栈是有序的,堆是无序的)引用数据类型是存储在堆中的,但是一般是堆栈都需要用的 var a = [1,2] var b = a这个代码中,a存储的数组[1,2]在堆中的地址.所以它在栈中的值是一个地址,所以它赋给b的结果也是地址,所以a和b都指向数组[1,2]的地址,
2017-05-25 18:30:27
719
原创 代码块和预编译
代码块在js中,一个代码块指的是一对script标签包含的代码段需要注意的是,每段代码块都是相互独立的,但是,在上一个代码块定义的全局变量可以在下一个代码块中直接使用,反之不行.预编译预编译的作用有两个:1为扫描所有代码,判断有无语法错误2为提示,如果没有错误,就进行变量提升和函数提升变量提升和函数提升会把变量和整个函数体放在代码块即script的最前面因此,可以先使用
2017-05-25 18:28:05
322
原创 js 错误问题
错误有两类:1为代码错误,2为逻辑错误 而逻辑错误就是我们通常所说的bug第一类:代码错误 代码错误有四种,a) SyntaxError 语法错误b) ReferenceError 引用错误也是常见错误c) TypeError 类型错误d) RangeEr
2017-05-25 18:20:44
316
原创 js进制转换问题
十进制转为其他进制Var a=255;a.toString(2);//转为2进制a.toString(8);//转为8进制a.toString(16);//转为16进制其他转10进制:Var a = ‘f1’parseInt(a,2)//2进制转为10进制parseInt(a,8)//8进制转为10进制parseInt(a,16)//16进制转为10进制其他
2017-05-25 18:18:57
309
原创 js加var和不加var的区别
区别:1. 在函数内部,加var是一个局部变量,而当不加var时,就是一个全局变量.2. 加var以后是不能delete删除变量的,不加var,是可以被delete删除的3. 加var 可以被提升,不加var是不可以被提升的a) 例如 console.log(a);var a =1;结果为undefined而console.log(a)
2017-05-25 18:15:24
494
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人