
JavaScript
追逐那片云
这个作者很懒,什么都没留下…
展开
-
JavaScript数组方法
一、基本类型和引用类型数值、字符串、布尔值、undefined、null可以直接写出来,比较简单的数据称为基本类型,在比较的时候,是直接按值比较。对象、函数、数组复杂的数据是引用类型,在比较的时候,是按照地址比较。console.log([1] === [1]); //falsevar a = []; //a其实存的是一个空数组的地址 引用var b = a; //赋值也是 赋的这...原创 2019-02-18 00:27:42 · 166 阅读 · 0 评论 -
ES6各大数据类型的扩展
一、字符串扩展includes()、startsWith()、endsWith()。传统JavaScript只有indexOf()方法用来确定一个字符串是否包含在另一个字符串中,ES6又提供了三个新方法。includes():返回布尔值,表示是否找到了参数字符串。startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。endsWith():返回布尔值,表示参数字符串...原创 2019-02-27 20:08:47 · 216 阅读 · 0 评论 -
JavaScript定时器
一、定时器setTimeout:循环一次。setInterval:循环多次。clearTimeout:清除一次性定时器。clearInterval:清除多次定时器。function boom(){ console.log('boom');}setTimeout(boom, 1000); //1秒后执行代码function go(){ console.log('...原创 2019-02-18 13:43:35 · 143 阅读 · 0 评论 -
JavaScript获取元素的方法
一、获取元素的所有方法通过id直接获取(极其不推荐),但是在调试代码的时候非常好用。通过document直接获取,包括head、title、body。通过类名获取,getElementsByClassName获取的是HTMLCollection,是一个类数组,IE8以下不兼容。通过标签名获取,getElementsByTagName获取的是HTMLCollection,也是一个类数组。...原创 2019-02-12 19:09:02 · 275 阅读 · 0 评论 -
JavaScript日期对象
日期对象new Date()获取的是本地的计算机时间。日期对象可以直接相减,得到的是两个时间的相差毫秒数。var date = new Date();console.log(date - new Date()); //0获取时间var date = new Date();var H = date.getHours(),//当前小时 M = date.getMinu...原创 2019-02-18 17:23:30 · 265 阅读 · 0 评论 -
JavaScript面向对象
一、面向对象基本特征封装:也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。继承:通过继承创建的新类称为“子类”或“派生类”。继承的过程,就是从一般到特殊的过程。多态:对象的多功能,多方法,一个方法多种表现形式。Javascript是一种基于对象(object-based)的语言。但是,它又不是一种真正的面向对象编程(OOP)语...原创 2019-02-24 11:26:45 · 115 阅读 · 0 评论 -
JavaScript for循环
一、for语句for(1; 2; 4){ 3;}1:定义语句2:判断语句3:执行体4:(迭代)变化语句1->2(true)->3->4->2(ture)->3->4->2->3->4->2(false)var oBtn = document.getElementById('btn');var oBox = do...原创 2019-02-13 20:06:42 · 194 阅读 · 0 评论 -
JavaScript DOM文档对象
一、节点文本节点,IE8以下空格节点获取不到。元素节点 div。属性节点 class、id、value。注释节点<div id="wrap"> <div class="position"> <div id="box" class="box1" data-title="这也是节点" abc="1原创 2019-02-19 13:50:22 · 103 阅读 · 0 评论 -
JavaScript事件
一、默认事件阻止默认事件,主流浏览器使用preventDefault(),IE8及其以下,设置returnValue属性,false取消默认事件,true不取消默认事件。document.onselectstart = function(e) { e = e || window.event; //取消默认行为 if(e.preventDefault){ ...原创 2019-02-24 22:24:31 · 213 阅读 · 0 评论 -
JavaScript CSSOM视图模式
一、获取窗口的宽高Window视图属性。window.innerWidth:窗口的内部宽度,不包括用户界面元素,比如窗框。window.innerHeight:窗口的内部高度。IE8以下不兼容。Document文档视图。document.documentElement.clientWidth:浏览器窗口可视宽度。document.documentElement.clientHeight:浏览...原创 2019-02-19 16:12:29 · 142 阅读 · 0 评论 -
JavaScript BOM
一、Window对象浏览器对象模型 (BOM) 使 JavaScript 有能力与浏览器“对话”。Window对象表示浏览器窗口,所有JavaScript全局对象、函数以及变量均自动成为 window 对象的成员。全局变量是window对象的属性,全局函数是window对象的方法。HTML DOM的 document也是window对象的属性之一。window.navigator.use...原创 2019-02-19 23:06:16 · 121 阅读 · 0 评论 -
JavaScript事件监听
一、事件event对象Event事件对象,用来获取事件的详细信息:鼠标位置、键盘按键。在主流浏览器下默认传参给事件函数的第一个参数,ie低版本会挂载在window下的event属性里,保存了触发事件参数,这是个全局对象。Event对象的兼容:e = e || window.event;obj.onclick = function(e){ e = e || window.event...原创 2019-02-20 23:23:18 · 709 阅读 · 0 评论 -
ES6定义变量
一、let命令不存在变量提升。es5的var会存在变量提升问题,但是es6的let和const不会存在变量提升问题。暂时性死区。只要在块级作用域内存在let命令,它所声明的变量就绑定在这个区域,不再受外部的影响。es6明确规定,如果区块中存在let和const命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域,凡是在声明之前就使用这些变量,就会报错。即使是使用typeof也会报错...原创 2019-02-26 15:43:15 · 1285 阅读 · 0 评论 -
ES6变量的解构赋值
一、数组的解构赋值es5一次声明多个变量。var a = 1, b = 2, c = 3;es6一次声明多个变量。let [a, b, c] = [1, 2, 3]; //a=1,b=2,c=3es6这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值。let [foo, [[bar], baz]] = [1, [[2], 3]...原创 2019-02-26 17:12:10 · 182 阅读 · 0 评论 -
JavaScript判断语句
一、比较运算在js中,凡是运算都会有返回值、&lt;、、!=、&gt;=、&lt;=、=、!==。比较运算返回值是true/false,即布尔值。在比较运算的时候,如果判断两个变量的值是否相等,采用==会有一个数据类型的隐式转换。js是一种弱类型语言,数据类型会相互转换。===的执行效率要高于==,因为后者需要进行数据类型的转换。console.log(a = 2);//2 ...原创 2019-02-11 23:25:11 · 4096 阅读 · 0 评论 -
JavaScript严格模式
严格模式在ES5引入,为了让团队开发更为便利、严谨,使用"use strict"开启严格模式。变量必须声明之后再使用。"use strict";a = 1;console.log(a); //报错函数的参数不能有同名的变量。"use strict";function add(a, a, b){}add();不能使用with语句,with可以动态改变作用域,将要被废...原创 2019-02-17 16:45:54 · 119 阅读 · 0 评论 -
重识JavaScript
最近打算重新学习JavaScript,以前学习的过程中没有留下笔记,所以这次重新学习,也在读红宝书,也就是JavaScript高级程序设计(第3版),顺便把笔记相应的记一下。 认识一门语言,首先需要知道这门语言是来干什么的,它能做什么,不能做什么心中要大体有个数。JavaScript一种直译式脚本语言,...原创 2019-02-06 19:51:55 · 183 阅读 · 0 评论 -
JavaScript函数
一、函数的声明和函数的表达式(1)函数的声明:通过function来声明一个函数叫作函数的声明。(有名函数)function fn(){ //...code}fn();此为函数的声明,声明的后面不需要加分号,函数在声明的时候并没有执行。只是把自己的内部作为一块存了起来,当我们调用的时候执行。函数的执行,采用函数名加()表示执行,执行不分场合,只要是函数名加()就表示函数的执...原创 2019-02-08 00:19:22 · 333 阅读 · 0 评论 -
JavaScript Ajax
一、认识AjaxAJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。功能:在不刷新页面的情况下,实现与后台的数据交互。AJAX 不是新的编程语言,而是一种使用现有标准的新方法。 Ajax技术核心是XMLHttpRequest对象(简称XHR)。Ajax不能跨域,浏览器的同源策略。要想跨域,可以使用jsonp,或者后台开放...原创 2019-02-21 15:41:33 · 124 阅读 · 0 评论 -
JavaScript运算符和类型转换
一、运算符+、-、*、/、%、**(es6 a**n:a的n次方)。赋值运算:=、+=、-=、*=、/=、%=、**=。算数运算不存在分数。在加号的任意一侧,出现字符串的时候就是字符串的拼接。var a = 1;a /= 2;a %= 2;a **= 2;&lt;div id="box"&gt; &lt;p class="on"&gt;&am原创 2019-02-15 20:01:54 · 156 阅读 · 0 评论 -
JavaScript代码执行顺序和数据类型
一、代码执行顺序浏览器解释代码是自上而下的,遇到script标签会直接解读js代码,下面的html元素就不会被解析,下面的html元素就获取不到,直到读取完毕。src引入的图片资源/js资源,href引入的css资源,整个文档也需要加载,到资源加载完毕,就可以执行代码。&lt;!-- 报错 --&gt;&lt;script&gt; document.getElementById...原创 2019-02-08 18:54:57 · 140 阅读 · 0 评论 -
JavaScript属性获取
一、操作标签的合法属性合法属性:比如id、class、title、href、src等。获取合法属性:获取元素之后,直接使用点语法。修改合法属性:获取元素之后,用等号赋值,修改已有属性。添加合法属性:直接等号赋值。<div id="box" title="你好">你好吗?</div><script>var title = document.get...原创 2019-02-08 20:08:33 · 356 阅读 · 0 评论 -
JavaScript作用域
一、什么是作用域作用是对代码的一个读写操作,域是js能够实现的一个范围。在script标签中var的时候,其实是在最大的window上加了一个属性,如果在script中没有用var声明,而是直接赋值,那就是自动在window上加一个属性,这是系统在找不到声明的时候,自动加的。console.log(a); //undefinedvar a = 1;console.log(a); //...原创 2019-02-16 12:54:23 · 102 阅读 · 0 评论 -
JavaScript闭包
一、获取局部作用域的变量通过变量向外传递。通过函数向外传递。条件和循环体:{}不代表作用域,在es6语法中,{}会被看做代码块,此时在{}当中声明一个函数,相当于var声明,尽量不要在{}当中声明函数,否则调用的时候会有问题。// 通过变量 向外传递 var b = '';function fn1(){ var a = "月薪10w"; b = a;}fn1()...原创 2019-02-16 14:05:33 · 85 阅读 · 0 评论 -
JavaScript正则表达式
一、认识正则表达式正则表达式是描述字符模式的对象,正则表达式用于对字符串模式匹配及检索替换,是对字符串执行模式匹配的强大工具。String和RegExp都定义了使用正则表达式进行强大的模式匹配和文本检索与替换的函数。正则表达式主要用来验证客户端的输入数据。可以节约大量的服务器端的系统资源,并且提供更好的用户体验。二、创建正则表达式字面量。语法:Reg = /pattern/modi...原创 2019-02-22 09:52:24 · 125 阅读 · 0 评论 -
JavaScript对象和json
一、对象在js中,对象是一种数据类型,不同于其他语言中的对象,js对象可以直接写出来,对象的写法包括:{}字面量、new Object()、Object.create({})。格式是{键:值},多个键值对用逗号分隔,键表示属性名,值表示属性值。键可以加引号也可以不加引号,可以写字符串和数值类型,其他变量类型不能书写。值必须存储数据,可以是任意数据类型,和数组类似。在es6中,如果键名和变量...原创 2019-02-16 19:21:29 · 146 阅读 · 0 评论 -
JavaScript标签内属性和数组
一、操作style属性通过点语法获取到的style是CSSStyleDeclaration对象,可以直接使用.的形式进行赋值或者访问标签合法属性。<div id="box" style="width: 100px;height: 100px;background-color: red; float: left;"></div><script> ...原创 2019-02-11 02:07:27 · 217 阅读 · 0 评论 -
JavaScript this
一、this是谁作为普通函数调用/自执行,this在全局/自执行(函数名())时,this指向window,实际上并不是指向了window,而是指向了null,被解释成了window。使用"use strict"开启严格模式,在es5的严格模式下,自执行,this指向undefined。function fn(){ this.xx = 123;}fn();console.l...原创 2019-02-17 00:48:08 · 107 阅读 · 0 评论 -
JavaScript cookie
一、认识cookiecookie : 存储在本地的一个数据,当用户访问了某个网站(网页)的时候,我们就可以通过cookie来向访问者电脑上存储数据。不同的浏览器存放的cookie位置不一样,也是不能通用的。cookie的存储是以域名形式进行区分的,每个域名对应一个cookie存储地址。cookie的数据可以设置名字的。一个域名下存放的cookie的个数是有限制的,不同的浏览器存放的个数...原创 2019-02-22 14:35:14 · 147 阅读 · 0 评论 -
JavaScript字符串方法
一、创建字符串创建字符串的三种办法: new String(), String(), 直接量,三种方式可以创建。String即文本(字符串),字符串方法都不改原字符串;length可读不可写。var str = new String('hello');var str = String('hello'); //内建函数var str = 'hello'; //字面量console...原创 2019-02-17 12:31:04 · 839 阅读 · 0 评论 -
ES6新纪元
一、Symbol为啥需要Symbol?ES5里面对象的属性名都是字符串,如果你需要使用一个别人提供的对象,你对这个对象有哪些属性也不是很清楚,但又想为这个对象新增一些属性,那么你新增的属性名就很可能和原来的属性名发送冲突,显然我们是不希望这种情况发生的。所以,我们需要确保每个属性名都是独一无二的,这样就可以防止属性名的冲突了。因此,ES6里就引入了Symbol,用它来产生一个独一无二的值。...原创 2019-03-02 21:32:19 · 281 阅读 · 0 评论