摘要: 1、函数声明 2、函数表达式 JS代码在解析时会进行函数提升,因此在同一个作用域内,不管函数声明在哪里定义,该函数都可以进行调用。而函数表达式的值是在JS运行时确定,并且在表达式赋值完成后,该函数才能调用。 这个微小的区别,可能会导致JS代码出现意想不到的bug,让你陷入莫名的陷阱中。如下代码: 出 阅读全文
posted @ 2018-03-23 17:04 endlessmy 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 一、什么是浏览器缓存 简单来说浏览器缓存就是把一个已经请求过的web资源(如html页面、图片、js、数据等)拷贝一份副本储存在浏览器中。缓存会根据进来的情况保存顺出内容的副本。 当下一个请求来到的时候,如果是相同的url,缓存是根据缓存机制决定是直接使用副本响应访问请求,还是向原服务器再次发送请求 阅读全文
posted @ 2018-03-22 16:02 endlessmy 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 每一个对象都是引用类型创建的。 一、工厂模式 特点:1、用函数来封装,并以特定接口创建对象;2、有返回值 缺点:虽然解决了创建多个对象的问题,但没有解决对象识别的问题(怎样知道一个对象的类型) 二、构造函数模式(通过this实现) 用构造函数可以创建特定类型的对象,同时也可以创建自定义的构造函数,从 阅读全文
posted @ 2018-03-18 19:58 endlessmy 阅读(6144) 评论(0) 推荐(1) 编辑
摘要: 1、str.length——获取字符串长度(字符串属性) 2、str.charAt(index)——返回字符串的第index个字符,index取值范围为0~str.length-1 如果index不在范围内,则返回一个空字符串 3、str.indexOf(search,startIndex)——返回 阅读全文
posted @ 2018-03-16 17:13 endlessmy 阅读(167) 评论(0) 推荐(0) 编辑
摘要: this是js中的一个关键字,它代表当前作用域的上下文环境,而且随着上下文的改变而动态变化。 this指当前的上下文环境,在不经意间容易改变: 这个例子告诉我们: 1、同一个函数,调用的方式不同,this的指向就会不同,结果就会不同 2、对象内部的属性的值为引用类型时,this的指向不会一只绑在原对 阅读全文
posted @ 2018-03-15 20:31 endlessmy 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 学过vue基础的都应该知道,通过v-model命令可以实现数据双向绑定,上代码: 效果: 双向绑定就是在单向绑定的基础上给可输入元素(input、text等)添加change(input)事件,来动态修改model和view。 实现数据绑定的做法大致有如下几种: 发布者-订阅者模式(backbone 阅读全文
posted @ 2018-03-15 10:27 endlessmy 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 闭包的官方定义时有权访问另一个函数作用域中的变量的函数。 闭包有两种用法:函数作为返回值,函数作为参数传递 第一:函数作为返回值 上面代码中,bar函数作为fn函数的返回值,赋值给了变量f1,因此执行f1()就是执行bar函数,执行bar函数时,变量max从fn作用域中去取。 第二:函数作为参数传递 阅读全文
posted @ 2018-03-14 11:07 endlessmy 阅读(83) 评论(0) 推荐(0) 编辑
摘要: 先解释下什么是自由变量。 在A作用域中定义的变量,却没有在A作用域中声明,对于A作用域来说,x就是一个自由变量。 在上面代码中,在调用fn()函数时,函数体中第6行。取b得值就直接可以在fn作用域中取,因为b就是在这里定义的。而取x得值时就需要到另一个作用域中去取,即它的上面一层作用域。 其实,也不 阅读全文
posted @ 2018-03-14 10:28 endlessmy 阅读(103) 评论(0) 推荐(0) 编辑
摘要: call()和apply()这两个方法的用途都是在特定的作用域中调用函数,实际上等于设置函数体内this的指向。 首先apply()方法接收两个参数:第一个参数是在其中运行函数的作用域,也就是说第一个参数指出了函数要在哪执行,第二个参数是参数数组或arrgument对象。 上面代码中apply()方 阅读全文
posted @ 2018-03-13 16:37 endlessmy 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 看过《JavaScript高级程序设计3》的同学应该都记得,里面有一节专门讲JS没有块级作用域。所谓“块”,就是大括号{}中的语句。 我们在写代码时,不要在{}里面声明变量,要在代码的一开始就声明好了,以避免发生歧义。如: JS除了没有块级作用域外,函数可以创建自己的作用域。 所以,在声明变量时,全 阅读全文
posted @ 2018-03-13 14:38 endlessmy 阅读(91) 评论(0) 推荐(0) 编辑