js高级
alightman
这个作者很懒,什么都没留下…
展开
-
js基础(简单复习)
①.复习Js基础1.变量,用于存储数据声明以及赋值2.数据类型分为简单数据类型和复杂数据类型简单:number,string,boolean,undefined,null复杂:Object function Array Date 基本包装类型:Number,String,Boolean3.数据类型的转换转换成字符串类型,String()/toStri原创 2017-10-08 01:14:13 · 294 阅读 · 0 评论 -
正则表达式写法和细节
1、普通字符2、特殊意义的元字符:\d数字字符;\d [0-9]\D 非数字\w word 匹配的是单词字符 a-z A-Z 0-9 _\W 非单词字符\s 空字符(不可见) 空格 \t \n\S 匹配可见字符. 匹配任意字符 (除去\n)\. 匹配的点3.正则优先级|或,优先级最低;()分组,优先级最高;/(原创 2017-10-24 00:24:52 · 4966 阅读 · 0 评论 -
四种获取下标的方法
四种获取下标的方法<button>按钮</button><button>按钮</button><button>按钮</button><button>按钮</button><button>按钮</button><button>按钮</button>想要获取当前按钮对应的下标 获取点击按钮:var btns = document.querySelectorAll("button");使用l原创 2017-10-23 23:39:22 · 35847 阅读 · 0 评论 -
递归函数
递归函数递归函数:函数内部直接或者间接的调用自己 + 自己调用自己(直接或者间接) + 要有结束条件(出口)斐波那契数列function fbnc(n) { if(n===1||n===2){ return=1; } return fbnc(n-1)+fbnc(n-2);}fbnc(5);有很大的内存缓存问题,其中有很多函数产生的作用域得不到释放,只能计原创 2017-10-23 23:37:47 · 251 阅读 · 0 评论 -
作用域和作用域链
全局作用域:全局的变量执行环境函数作用域:函数内部的变量执行环境每个函数都有自己的执行环境,当执行流进入一个函数时,函数的环境就会被推入一个环境栈中。函数执行之后,栈将环境弹出,把控制权返回给之前的执行环境。-全局作用域只要页面不卸载,就一直存在,不释放。-函数每次在调用时,都会形成一个作用域,当函数调用结束时,这个作用域就释放了传递参数,会传给函数的argum原创 2017-10-23 23:35:26 · 205 阅读 · 0 评论 -
预解析
js代码执行分为两个步骤:预解析(提升)代码一行一行执行预解析阶段:javascript解析器会把所有的变量声明和函数声明提升到当前作用域的最顶部。对于var a = 11;这么一条语句,其实会分为两部分:var a;和a =11;,其中var a;会被提升。提升规则:提升以作用域为单位。优先提升函数function,然后才提升变量var。原创 2017-10-23 23:33:51 · 365 阅读 · 0 评论 -
函数的原型链,原型链的完整版以及原型链的族谱
1.所有函数都是new Function创建出来的,因此所有函数.__proto__都是Function.prototype2.所有对象都是new Object创建出来的,因此所有对象.__proto__都是Object.prototypFunction.prototype成员arguments:获取函数的实参,被函数内部的arguments替代了。length:获原创 2017-10-23 23:24:43 · 891 阅读 · 0 评论 -
函数调用模式,this在函数中的指向
全局变量声明:var num === window.num ;函数的四种调用模式根据函数内部this的指向不同,可以将函数的调用模式分成4种1函数调用模式2方法调用模式3构造函数调用模式4上下文调用模式(借用方法模式)1)函数调用模式:function fn(){console.log(this);//指向window;}fn原创 2017-10-23 23:19:08 · 1176 阅读 · 0 评论 -
js变量和对象的索引
赋值变量值的时候,是不同的,如果从一个变量向另一个变量复制基本类型的值,会在变量对象上创建一个新值var num1 = 1;var num2 = num1;num1中存值1,当num1赋值给num2时,num2也存储了值1,然而num2中的1和num1中的1是完全独立的,这个1是num1中1的一个副本赋值对象引用类型的时候,会将存储在变量对象中的存储的内存地原创 2017-10-23 23:16:10 · 2938 阅读 · 0 评论 -
jsson在js中的转换
eval:将一段字符串当成代码来执行,与之前创造函数的方法相同;eval("alert(1+2)");//3可以让一个json转换成js对象json:一种通过的数据交换的格式 说白了 json就是一个字符串,只不过这个字符串有一定的规则。//var json = '{"name": "zs", "age": 18, "sex": "男"}';//如何把json字符串转换成js对原创 2017-10-13 01:42:34 · 1346 阅读 · 0 评论 -
定义函数的方式
定义函数的三种方式1函数声明function fn(){};fn();2函数表达式var fn1 = function(){}fn1();//函数声明里必须要有名字,而()只能出现表达式()转换成表达式//函数自调用:!function(){}();//常用,用运算符转成表达式3构造函数的方式Object:内置构造函数用来创建对象 Function:内置构造函数,用来创建函数var fn原创 2017-10-13 01:41:43 · 1000 阅读 · 0 评论 -
对象的继承
混入继承让一个对象可以使用另一个对象的属性和方法就是继承var obj ={ name:"ls", extent:function(temp){ for(var k in temp){ if (temp.hasOwnProperty(k)){ this[k]=temp[k] }原创 2017-10-13 01:40:23 · 348 阅读 · 0 评论 -
原型链
一。原型链:一个对象会有一个原型,(对象.__proto__),同时原型也是一个对象,也有原型p.__proto__===Person.prototype最终的Object.prototype.__prototype__=null;//Object Array String Date构造函数//Math是内置对象//1. var p = new Person();// p原创 2017-10-13 01:36:43 · 223 阅读 · 0 评论 -
对象改进(引入prototype)
function Phone(brand, color, size){this.brand = brand;this.color = color;this.size = size;this.call = function () {console.log("打电话");this.mail = function(){console.log("发短信")}}原创 2017-10-13 01:33:43 · 318 阅读 · 0 评论 -
面向对象编程
面向对象编程面向过程:注重过程,解决问题的思路,关注点在解决问题的这个过程面向对象:解决问题的思想,关注点在于指挥哪个对象,做哪件事情找一个对象,让对象执行面向对象的三大特性:封装,继承,[多态]封装//函数:封装代码;对象:把一些属性和函数封装到一个对象中继承//js的继承,拿来主义,一个对象没有这个属性或者方法,通过某些手段,能够直接用另一个对象的属性和方法[多态]原创 2017-10-08 01:16:38 · 702 阅读 · 0 评论 -
type,逻辑中断,==运算符,深复制
1.typeof返回的是字符串只能判断简单数据类型,若果是复杂数据类型只能都判断出object,(instanceof)typeof是一个关键字,不是函数,()的作用仅仅是提升优先级特殊两点:1)function是复杂数据类型但是返回的是funtion2)null的返回时object2.逻辑中断&&:找假值,从左往右依次判断,找到false结束||:原创 2017-10-08 01:15:52 · 299 阅读 · 0 评论 -
面向对象编程-贪吃蛇小游戏
页面中的地图maphtml结构 <div id = "map"></div>样式 #map{ width:800px; height:600px margin:0 auto; background-color:#ccc; position:relative; }食物的对象Food 属性 宽度wi原创 2017-10-13 01:39:43 · 2472 阅读 · 2 评论