JavaScript
cocoljh
这个作者很懒,什么都没留下…
展开
-
js基础理解
js引入方式js是一个单线程过程;嵌入代码 :可以有多个代码块。外部引入:通过script标签src属性引入。外部引入js过程:外部引入js会阻塞页面加载,一般js代码方法最后面,提高页面加载速度;‘’下载解析执行 :花费时间较多js加载的方式外部引入:阻塞加载 :阻塞页面加载,必须等待js下载,解析,执行完才执行后面html文档解析async:异步加载:立即并发新开...原创 2019-06-18 20:36:52 · 145 阅读 · 0 评论 -
cookie理解
cookie机制浏览器初次访问服务器时,服务器会在建立TCP连接的时候,set-cookie user = id 放在响应首部,浏览器会把cookie存储起来。下次访问的时候带着cookie。浏览器会识别cookie,并把浏览器存储的相关数据提取出来返回。cookie分类会话cookie:用户退出浏览器是会话cookie会被删除永久cookie:存储在硬盘上,退出浏览器,电脑关机,都不会...原创 2019-07-04 10:23:20 · 118 阅读 · 0 评论 -
history历史记录
history方法与属性history.pushState(对象,‘标题’,‘新增历史记录’) 不刷新页面的情况下 添加历史记录history.replaceState(对象,‘标题’,‘替换的历史记录’)不是页面的情况下,替换当前历史记录window.onpopstate 事件 ,但历史记录发生变化的时候触发。但是使用,pushState与replacestate不会触发。pushSta...原创 2019-07-04 10:26:19 · 762 阅读 · 0 评论 -
字符常用处理
字符与编码的转化)字符串.charCodeAt(字符串索引)可以把字符串的单个字符,转变成字符编码String.fromCharCode(字符编码)可以把一个或多个字符编码 转变成字符串。 str = 'cc爱tt';//charCodeAt 能把字符串转换为字符编码 console.log(str.charCodeAt(0));//数字代表字符串的索引 c...原创 2019-06-28 21:44:57 · 216 阅读 · 0 评论 -
es6:解构赋值
数组解构赋值注意点必须有初始化的值可以在解构中忽略一些项互换变量解构赋值表达式的值是表达式右边的值//数组的解构辅助 var arr = [1, 3, 4]; let [a, b, c] = arr; console.log('a='+a,'b='+b,'c='+c); // 必须有初始化值 ...原创 2019-07-04 19:46:00 · 173 阅读 · 0 评论 -
正则表达式
定义直接量:/字符模式/标志字符RegExp类:new RegExp(字符模式,标志字符)标志字符:g:全匹配 i:忽略大小写 m :多行匹配字符模式字符范围:[ ] 代表一个字符,注意:可以进行拼接,查找多个不同的类字符 注意空格在中括号内是有效的会被当做一个字符来做匹配逻辑或:| 或者前后是单独的表达式重复:一个 或 多个字符 或 没有;字符含义:+ 至少一个...原创 2019-06-29 15:48:15 · 85 阅读 · 0 评论 -
webstorage
分类Storage仅供本地存储。sessionStorage:临时存储,浏览器关闭存储结束。localStorage:永久存储,除非用户手动清除。注意Storage:存取都是采用字符串的形式/localStorage存取都是使用字符串的形式 localStorage.username = 'aimee'; let obj = { ...原创 2019-07-04 23:13:32 · 83 阅读 · 0 评论 -
es6:参数
参数的默认赋值函数传参严格等于undefined的时候 采用默认赋值// 参数的默认赋值 基本用法 function fn(a,b,c){ console.log(a,b,c); } fn(1,3,6); fn();//undefined function fn1(a = 1, b = 5...原创 2019-07-05 10:16:25 · 148 阅读 · 0 评论 -
es6:箭头函数
使用语法注意点1.如果参数只有一个 可以省略小括号2.如果参数是0个或者2个及2个以上 必须有小括号3.如果大括号只有一条语句,可以省略大括号,但是如果是ruturn语句的话,必须省略掉 return (在省略调大括号的前提下) function fn(a,b){ console.log(a,b); } fn(1,3); ...原创 2019-07-05 18:24:38 · 103 阅读 · 0 评论 -
es6:新增对象相关
新增对象字面量特性方法定义的简写属性名的缩写计算字面量 // 新的对象字面量特性 // 1.方法的定义 let obj = { a: 1, show : function(){ console.log('show'); } } ...原创 2019-07-05 20:32:06 · 146 阅读 · 0 评论 -
cors跨域资源共享
什么是cors跨域是一种使用额外的http首部实现跨域获取资源的权限的机制。分类1.简单请求请求方式为,POST GET HEADcontent-type 为 text/plain multipart/form-data application/x-www-form-encoded 等一些允许的安全请求头2.预检请求请求方法不是POST GET HEADcontent-type 不...原创 2019-07-06 11:26:41 · 94 阅读 · 0 评论 -
es6:类
es5类与es6类对比// es5类 function Dog(name,age){ this.name = name; this.age = age; } Dog.prototype.bark = function(){ console.log('我是'+this.name)...原创 2019-07-11 17:37:28 · 102 阅读 · 0 评论 -
es6:类的继承
es5类的继承function Animal(name){ this.name = name; this.thirsty = 100; this.food = []; } Animal.prototype.drink = function(){ return this....原创 2019-07-11 17:54:02 · 147 阅读 · 0 评论 -
es6:新增数组
新增数组方法 // 新增的创建数组的方法 let arr1 = [1,3,5]; let arr2 = new Array(1,3,4,5); let arr3 = new Array(10);//使用new Array()创建数组的时候传入的是一个参数,那么是一个包含了参数位的空数组 console.log(arr1...原创 2019-07-11 19:21:45 · 107 阅读 · 0 评论 -
对象的特性和克隆
对象的特性克隆使用原型克隆新建立的对象obj1,拥有obj的所有属性,但是有影响。obj的属性发生改变,新建立obj1的对象也会改变,但是新建立的对象obj1的改变不会影响到obj的改变。 // 使用原型克隆 var obj = { x : 1, y : { x : 5 ...原创 2019-06-28 16:43:02 · 73 阅读 · 0 评论 -
对象属性的高级用法
属性的高级特性可写:writable :是否可设置该属性的值可枚举 enumerable :for in 是否可枚举该属性可配置 configurable :属性是否可删除和属性的特性是否可修改定义属性的特性Object.definedProperty(对象,属性名字符串,特性描述对象);Object.definedProperties (对象,多属性特性描述对象);...原创 2019-06-28 15:48:38 · 256 阅读 · 0 评论 -
闭包
产生闭包的条件概念:闭包是由函数以及创造该函数的语法环境结合组成。这个环境包含了这个闭包创建时所能访问的所有局部变量。嵌套结构的函数内部函数访问外部函数的变量在外部函数的外面调用内部函数// 普通情况 function fn(){ var a = 1; function e(){ ...原创 2019-06-27 12:27:52 · 68 阅读 · 0 评论 -
js基础理解2
js基本数据类型number:所有数字string:单个字符和字符串boolean:ture falsenull:null 对象为空undefined:变量未初始化,没有值为undefinedobject:除了上述都为对象;注意:null == undefined 返回truenull === undefined 返回false注意:Number String Boo...原创 2019-06-19 22:50:32 · 113 阅读 · 0 评论 -
js基本理解3
数字整数:精度准确,范围在最大安全整数范围内精度准确。Number.MAX_SAFE_INTEGER与最小安全整数Number.MIN_SAFE_INTEGER之间进度准确。浮点数:精度丢失,由于二进制存储数据的原因。采用IEEE75标准作为转化,存在精度丢失。注意:0.1+0.2 == 0.3 false0.1 + 0.3 == 0.4 true解决方法:小数扩大10的n次幂的形式...原创 2019-06-20 18:42:20 · 99 阅读 · 0 评论 -
js基础理解5
函数的参数形参 :函数定义的时候表明的参数。实参 :函数调用的时候传入的参数。获取函数形参的个数:函数的对象方法。函数名.length 可以获取函数形参的个数;获取函数实参的个数:函数的arguments。arguments.length 可以获取函数的实参;arguments特点仅在函数里面有专为函数参数而设计的对象本质是一个伪数组calleearguments.ca...原创 2019-06-25 19:43:53 · 84 阅读 · 0 评论 -
js基本理解6
函数的三大特性当一个函数是一个对象的属性时,称之为方法。了解更多关于对象和方法的知识 使用对象。在 JavaScript 中,可以根据条件来定义一个函数。比如下面的代码,当num 等于 0 的时候才会定义 myFuncvar myFunc;if (num == 0){ myFunc = function(theObject) { theObject.make = "Toyo...原创 2019-06-25 22:02:47 · 69 阅读 · 0 评论 -
js基本理解4
函数函数的创建:1.静态方法:function add(a,b) {return a + b}; var add = function(a,b){return a+b}2.动态方法:var add = new Function (‘a’,‘b’,‘return a+b’)动态方法:都是以字符串传入;最后一个为代码块的语句,前面参数可以有多个,都是函数传入的参数例:// 函数定义的方法...原创 2019-06-23 12:43:32 · 97 阅读 · 0 评论 -
es6:let与const
es6es6是为了解决es5语法的缺点新天加的语法。let与const的特点遵循块级作用域。只在块级作用域起作用。注意点let不能变量提升console.log(i);//undefined 变量提升 var i = 0; console.log(msg);//报错 变量不能提升 let msg = 1;不能重复申明变量...原创 2019-06-26 16:20:46 · 99 阅读 · 0 评论 -
JSONP跨域
浏览器同源策略同源策略同源策略是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源。所以xyz.com下的js脚本采用ajax读取abc.com里面的文件数据是会被拒绝的。同源策略限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的重要安全机制。只有协议,域名,端口,都相同才属于同源;jsonp跨域原理:sr...原创 2019-06-26 17:26:41 · 73 阅读 · 0 评论 -
js基础this理解
this定义函数体内自带的一个对象指针。简单理解:那个对象拥有函数,函数内this就是谁。谁调用函数,this就指向谁。原创 2019-06-26 22:03:51 · 73 阅读 · 0 评论 -
js作用域与预解析
作用域什么是作用域:可访问变量的范围集合简单理解:定义的变量可以被访问到的范围,起作用的地方。包含:函数作用域,全局作用域。(es6增加块级作用域)预解析预解析:浏览器,得到js文件时,不是立即执行js代码,而是先全篇浏览一遍,把变量预先解析。即:把变量申明提前,不包含赋值; console.log('x = '+ x); var x = 1; ad...原创 2019-06-26 23:26:12 · 131 阅读 · 0 评论 -
递归
递归函数自己调用自己,需要有一个终止条件。递归思维:把复杂的问题,拆分为一步一步简单化,最后解决问题。栈栈:先进后出汉诺塔汉诺塔游戏:num是数量,a是起始柱子,b是辅助柱子,c是目标柱子。要求打印出不同数量的情况下的移动顺序。 function fn(num,a,b,c){ if(num == 1){ return cons...原创 2019-06-27 10:53:12 · 60 阅读 · 0 评论 -
js对象基础
对象的赋值对象:存在内存堆中,可以可以具有多个属性的数据。对象的赋值:只是赋值对象存储的地址。复制一个对象使用for in 遍历 但是只能复制可枚举的属性复制的顺序不一定跟原来的对象一样。obj = { a: 1, b: 2, c: 3 } obj1 = {}; fo...原创 2019-06-27 14:19:08 · 73 阅读 · 0 评论 -
对象,类(构造函数),原型
对象的创建方式直接量:var a = {}构造函数:var a = new A()create方式:Object.create(原型对象,属性列表)创建原理:基于构造函数定义的属性,并基础原型对象的属性,生成的新对象。三者的关系...原创 2019-06-27 14:50:33 · 100 阅读 · 0 评论 -
原型,原型链,继承
原型,原型链,继承实用的方法获取原型:Object.getprototypeof(对象);判断对象1是不是对象2的原型:object1.isPrototypeOf(object2);for in 会枚举原型的属性检测私有属性 object.hasOwnProperty(属性名)所有私有属性的名称:object.getOwnPropertyName(对象)所有可枚举的私有属性:ob...原创 2019-06-27 16:15:30 · 89 阅读 · 0 评论 -
es6模块化
nodejs模块化语法module.exports 导出require 导入es6模块化语法通过<script type='module'></script>声明可以使用模块化语法export 导出import 导入1.基本用法通过把不同的功能用法的js分开成不同的模块,是的代码可读性高,便于维护;通过导入,导出,实现调用;export fu...原创 2019-08-02 17:04:53 · 178 阅读 · 0 评论