自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 收藏
  • 关注

原创 js基础

1.DOM 中的两个节点存在的关系: (1): 包含域被包含 A.contains(B) (2): 父与子: 获取父节点 : node.parentNode 获取子节点: childNodes (有空格的影响) (3) : 同辈(兄弟) : nextSibling previousSibling (4): children (IE9+ 以上)2.如何创建,查找,移动,

2018-01-06 00:11:31 315

原创 js题目(5)

1.open() : 方法可以查找一个已经存在的或者新建的浏览器窗口2.onblur 失去焦点 onfocus 获得焦点3.angular JS相对于其他的框架来说:MVVM 模块化 自动化双向数据绑定 语义化标签 依赖注入 MVC –> 模型 - 视图 - 控制器 MVVM –> 模型 - 视图 - 视图模型4.function * 声明(function

2018-01-03 00:28:41 317

原创 js题目(4)

1. 数据类型大写是数据类型,小写是值;2.创建数组的语法:var arr = [1,2,3]; // 字面量创建 var arr = new Array(1,2,3); // 标准创建 var arr = new Array(12); // 如果只有一个数,代表数组的length 是 12个; var arr= new Array(0); // 代表清空数组3. + 隐式转换为字符串, -

2018-01-02 00:03:14 331

原创 事件的机制 内存泄漏 事件的处理 异步装载回调 异步编程的实现 (知识点)

1.jquery的四种监听事件的方式bind , live , delegate , on : 对应的解除监听的函数是 unbind , die , undelegate , off;type: 事件类型,如click,change,mouseover data: 传入监听函数的参数,通过event.data取到 function: 监听函数,可传入eventbind方法:把监听器绑定到目标元

2018-01-01 02:10:10 547

原创 js题目3(知识点)

1.== 运算符(两个操作数类型不相同时)如果一个值是null,另一个值是undefined ,则他们相等;如果一个值是数字,另一个值是字符串,现将字符串转换为数字,然后使用转换后的值进行比较;如果其中一个值是true,则将其转化为1再比较.如果其中一个值是false,则转换为0 再比较;如果一个值是对象,另一个值是对象或者字符串,则将对象转换为原始值,在进行比较;2.跨域访问,主要解决是浏览器的同

2018-01-01 01:57:53 306

原创 js题目(知识点2)

1.原型的属性修改会影响到所有的之类,但是之类的修改不会影响到原型2.在指定了作用域的情况下,不会按原型链查询属性, this.n通过this限定在当前作用域下查询n的属性,添加n属性3.不能添加的特殊情况大概两种原因 : 之类不可扩展, 原型属性只读4.new运算的具体执行过程: (1):创建一个空对象 (2):把这个空对象的proto指向构造函数的prototype (3):把这个空对象

2017-12-31 00:47:28 268

原创 模块化(知识点)

1.模块化(1)什么是模块化?把代码整理成一个一个小的功能,便于你增加或减少和修改的功能,同时又不会影响整个系统;(2)为什么要使用模块化?模块化可以使你的代码低耦合,功能模块直接不互相影响;好处: 可维护性: 每个模块都是独立的,良好的设计模块尽量与外部的代码撇清关系,以便于独立对其进行改进和维护;命名空间: 在js中,最高级别的函数外定义的变量都是全局函数, 会跟一些无关的代码使用到的变量同

2017-12-30 00:05:00 1097

原创 常见的布局(知识点)

多列布局 : (1)左列定宽 ,右边自适应 ( 右边定宽,左边自适应 )解决 : 利用 float + margin 实现 ,IE6有3px的bug 利用float + overflow(左边定宽) flex弹性盒子,左边为定宽,右边flex:1(IE9+以上)(2)两列定宽,一列自适应解决: 利用 float + margin 实现 ,IE6有3px的bug

2017-12-29 01:31:51 384

原创 跨域请求数据(知识点)

跨域请求数据(1):通过jsonp在js中,直接设置XMLHttpRequest请求不同区域的数据时是不可以的; 但是在页面引入不同域上的js脚本文件是可以的; 看到获取数据的地址后面还有一个callback参数,按惯例是用这个参数; 如果获取数据的jsonp地址页面不是你自己能控制的,就得按照提供数据哪一方的规格来操作 使用jquery,不需要手动的插入script标签以及定义的回调函数,

2017-12-29 01:27:29 235

原创 继承(知识点)

继承(1):原型链继承核心: 将父类的实例作为子类的原型 特点: 非常纯粹继承关系,实例是子类的实例,也是父类的实例 父类新增原型方法 原型属性,子类都能访问到 简单,易于实现 缺点:无法实现多继承 创建子类实例 时,无法向父类构造函数传参 要想为子类添加属性和方法,必须在new Animal()这样的语句之后执行, 不能放在构造器中(2):构造继承核心: 使用父类的构造函数来增强子类

2017-12-29 01:24:32 256

原创 面向对象

1.面向对象(1):工厂模式工厂模式可以传递参数,主要缺点是无法识别对象的类型, 因为创建对象都是使用Object的原生结构函数来完成的;(2):构造函数模式要创建Person实例,必须使用new关键字,以Person函数为构造函数,传递参数完成创建对象 1.创建一个对象 2.将函数的作用域赋予对象(this指向这个新对象) 3.执行构造函数的代码 4.返回该对象 缺点: 创建对象的时候

2017-12-29 01:22:12 152

原创 数据的基本类型

1.数据的基本类型(1)Number类型包含整数和浮点数 isNaN()函数,用于判断是否是一个非数字类型,传入非数字类型,返回true,否则返回false; 如果参数类型是对象类型,会先调用对象的valueOf()方法,在确定该方法的 返回值是否可以转换为数值类型;不能再用对象的toString()方法,再确定返回值;数值类型的转换:parseInt(): 转换为 整数 parseFloa

2017-12-29 01:19:41 1002

原创 css选择器

1.css选择器的优先级及使用(1)css的三大特性: 继承 优先级 层叠 (2)css的选择器分类: 标签选择器 类选择器 ID选择器 全局选择器(*) 后代选择器 伪类选择器字符串匹配 选择器( $ * ^) 结尾 包含 开头 子选择器 相邻选择器 (3) 优先级不同 !important > 行内 > id > 类 > 标签 > 通配符 > 继承 > 浏览器自定义2.

2017-12-29 01:17:17 306

原创 作用域和作用域链(知识点)

1.作用域 : 全局作用域 和 局部作用域全局作用域 : 最外层函数和最外层函数外面定义的变量拥有全局的作用域; 所有未定义直接赋值的变量自动声明为拥有全局作用域; 一般情况下,window对象的内置属性都拥有全局作用域, 如: window.name window.location局部变量: 和全局函数相反,局部作用域一般只在固定代码片段内可以访问到, 最常见的就是函数的内部,有时候称之为

2017-12-28 17:03:09 246

原创 原型链

1.原型添加方法(单个) function Person () { this.name = 'John'; } // 直接在原型上面添加方法(单个添加) Person.prototype.say = function() { console.log('Hello,' + this.name); }; var person

2017-12-28 13:32:51 214

原创 js题目(知识点)

1.返回值: undefined 未定义 boolean 布尔值 string 字符串 number 数值 object 对象 function 函数2.一般判断一个对象的类型使用 typeof, 特殊在new String 的情况下结果会是 object, =new出来的都是object,需要instanceof 来判断3.typeof的返回值: n

2017-12-28 01:51:10 281

原创 原型链(知识点)

1.window.onload = sss(); 加括号表示调用,函数立即执行; window.onload = sss; 不加括号表示函数的引用赋值,即当符合条件时才会执行2.原型链添加方法和属性的两种方法 直接添加(只能一个一个添加) : object.prototype.say = function () {} 对象添加(一次添加多个),必须放在构造函数实例化前面 : objec

2017-12-27 23:37:53 254

原创 浏览器的兼容

1.浏览器内核及差异 : IE : Trident (以前的IE占有率非常高,代码不公开)Firefox : Gecko ( 代码完全公开 )Chrome : Webkit Opera : Blink2.浏览器的兼容:(1): 标签的默认padding和margin不同解决 : 在css里面设置margin:0;padding:0;(2): 块级标签float后,又有横行margin情况下,

2017-12-27 23:33:44 202

原创 web标准理解

1.web的标准理解 :结构 : html 表现 : css 行为 : js2.web的标准有什么优点?易于维护:只需修改css文件,就可以改变整个网站的样式 页面响应快 : html文档体积变小,响应时间短 可访问性: 语义化的html 设备兼容性: 不同的样式表可以让网页在不同的设备上显示不同的样式 搜索引擎: 语义化的html能更容易被搜索引擎解析,提升排名

2017-12-27 23:31:16 322

原创 css盒子模型

1.css的盒子模型 ( IE 和 w3c标准模型 ) 区别 : 标准 width = 内容宽 IE width = 内容宽 + (padding + border) * 2 两个之间的转换 : box-sizing : border-box (设置的border 会往里面挤) content-box(是默认值,标准);cs3 : 兼容是IE9+ 以上, 所有的低版本不支持;2.标

2017-12-26 22:15:31 193

原创 元素的居中

1.不确定宽高的情况下实现盒子的居中(无兼容问题)/* 不确定宽高的情况下实现盒子的居中左右的百分比是相等的,两个之间相加不能大于100%*/#box { position: absolute; left: 10%; right: 10%; top: 25%; bottom: 25%; background-color: #0ff;}2.固定的宽

2017-12-26 22:06:52 159

原创 闭包(知识点)

1.什么是闭包: 能够读取其他函数的内部变量的函数2.闭包的作用域: 分为全局变量 和 局部变量;(在函数内部一定要用var定义变量, 不然就是定义了一个全局的变量);3.闭包的用途: 可以读取函数内部的变量 函数的变量保存在内存流中 i值的安全性 (只有函数的子函数才能访问) 通过保护变量实现js私有属性和私有方法;4.闭包的注意点: 由于闭包会使函数中的变量保存在内存中,内存消耗大,

2017-12-26 21:47:07 342

原创 闭包(变量保存在内存流中)

1.函数执行后,变量的改变,会一直保存在内存流中,再次调用时是改变的值; (同一个变量接收的函数调用,不同变量接收同一个函数,还是会以初始值变量) function f1(){    var n=999;    // 回调函数,某个时刻执行    nAdd=function(){n+=1}    function f2(){      alert(n);    }    return

2017-12-26 21:39:08 2302

原创 闭包(外面访问函数的内部)

1.把函数f2返回出去,定义一个变量接收,在需要用到的地方调用 function f1() { // 没有用var 就是代表全局变量 mm = 20; function f2() { // 函数的内部可以使用到父函数的变量 alert(mm); } // 把f2 这个函数返回出

2017-12-26 21:32:00 2580

原创 作用域链3

1.函数内(函数内的函数除外,嵌套的函数访问不到), 定义的变量在整个函数内部都有效function test() {var t = 0;//在for的条件里定义变量,这个变更的作用域链对象是这个函数//因此在整个的函数里它是有效的for (var i = 0; i < 5; i++) {// 默认是全局变量,当 i 等于5时候条件不满足;t += i;}alert(i);}/

2017-12-26 21:28:01 154

原创 作用域链2

1.函数内部的变量取代全局同名变量var t = "pp";function test() { // 函数内部的变量取代全局同名变量 //执行t的时候,它会先找作用域链对象,由于它定义在函数内部, //所以这个函数就是它的作用域链的第一个对象 //而在这个对象里又有t的定义,所以t就是局部变量了,它替换了全局变量t //t只是此时有定义,但并没有赋值,赋值在下一行,所以这

2017-12-26 21:18:11 116

原创 作用域链

1.通过封闭空间传递i值,回调函数执行时,注册事件结束了; js部分 function sss() { for(var i=1; i < 4; i++) { // 封闭空间自执行,传递i值到内部 (function bb(data_i) { // data_i是形参 // 获取元素 var b = document

2017-12-26 21:10:35 141

原创 闭包的使用

思路: 先定义一个空的数组,for循环遍历数组,把数组里面的元素push到空的数组中,因为返回的是回调函数,i值需要传递进去,函数里面返回一个函数,再返回函数的元素,最后把定义的数组返回出去;1.闭包的使用(i值的传递)function makeClosures(arr, fn) {// 定义一个空的数组 var result = []; for (var i = 0; i < a

2017-12-24 21:34:41 155

原创 修改this的指向

1.apply方法function speak(fn, obj) {// 第一个参数就是改变this的指向,把相应的对象写上// 第二个参数是空的或者 obj return fn.apply(obj);}2.call 方法function speak(fn, obj) { return fn.call(obj);}3.bind方法function speak(fn, obj)

2017-12-24 16:44:45 228

原创 传参数

1.apply方法function argsAsArray(fn, arr) {// fn 的代表父函数 ,apply是一个集合形式, arr 就是集合数组 return fn.apply(this, arr);}2.call 方法function argsAsArray(fn, arr) { // fn 代表父函数 , call 是一个一个参数 , arr[0] arr[1] 代表的参

2017-12-24 16:23:49 168

原创 条件判断

1.流程1function fizzBuzz(num) {// 判断num 不是unmber的情况(注意 typeof 单词)// arguments.length ==0 判断num 是为空的情况 if (arguments.length ==0 || typeof num !== 'number') { return false; // 能被5和3 整

2017-12-24 15:59:40 216

原创 计时器

1.用setTimeout()方法function count(start, end) {// 判断前面的时间小于等于后面的时间 if(start <= end){ console.log(start); // 进行++ 操作 start++; // 不用var 就是代表全局的,使用延迟调用,只执行一次代码 s

2017-12-23 16:03:37 175

原创 判断是否完全相等

1.用全等于号function identity(val1, val2) {// ===代表是全等于 return val1 === val2 ? true : false}2.function identity(val1, val2) {// 判断两个值是不是NAN的情况if ((val1 !== val1)&&(val2 !== val2)) { return true;

2017-12-23 12:25:42 594

原创 保留合法数字,其他的去掉

1.正则match方法function parse2Int(num) {// 用正则match()查符合条件的元素 return parseInt(num.match(/^\d+/)[0]);}2.用十进制解决function parse2Int(num) {// 第二个参数表示进制数 return parseInt(num,10);}3.用parseFloat 方法func

2017-12-23 12:03:26 360

原创 函数的声明的提升

1.三目运算function functions(flag) {// 利用三目运算,返回结果 function getValue() { return 'flag' ? 'a' : 'b'; } return getValue();}2.函数的声明的提前function functions(flag) { if (flag) { // 把函数赋予一个变量,避免函数

2017-12-23 11:49:48 240

原创 查找元素的位置(下标)

1.用forEach循环,再判断function findAllOccurrences(arr, target) {// 定义一个空的数组var temp = []; arr.forEach(function(val,index){ // 不等于指定的值,或者等于的时候返回下标(把下标添加到空的数组) val !== target || temp.push(in

2017-12-21 00:08:01 4971

原创 元素的平方

1.用 map 方法返回function square(arr) { return arr.map(function(e) { // 返回元素的平方 return e * e; }) }2.用for 循环,再用数组的几次方,返回新的数组function square(arr) {// 定义一个新的数组 var arrNew = [

2017-12-20 23:52:09 472

原创 查找数组重复的元素

1.用sort 先排序,再判断条件,添加到数组function duplicates(arr) {// 定义一个a变量接收数组进行排序,变量b为空的 var a=arr.sort(),b=[]; for(var i in a){ // 判断两个条件(当前的相等于前面的一个)且(b空数组里面没有这个元素) if(a[i]==a[i-1] && b.indexOf(a

2017-12-20 00:07:12 423

原创 查找指定元素在数组中的个数

1.用 filter 返回删除的数组 function count(arr, item) { // 返回值是删除不符合条件的元素 var count = arr.filter(function(a) { // 返回true的项组成的数组 return a === item;

2017-12-19 23:29:27 6283

原创 删除数组最后一项,不在原数组操作

1.定义一个新的数组接收原数组,删除最后一个再返回function truncate(arr) { var newArr = arr.slice(0); newArr.pop(); return newArr;}2.用slice截取的方法function truncate(arr) {// 返回截取到最后一项,包头不包尾 return arr.slice(0,-1

2017-12-18 20:59:22 1598

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除