摘要:```html 05_探索instanceof ```   每个函数都有一个prototype属性, 它默认指向一个Obje
阅读全文
摘要:```html 5、构造函数有__proto__属性,实例对象没有prototype 属性,原型对象有__proto__属性```
阅读全文
摘要:什么是函数? 用来实现特定功能的, n条语句的封装体 只有函数类型的数据是可以执行的, 其它的都不可以 为什么要用函数? 提高复用性 便于阅读交流 函数也是对象 instanceof Object true 函数有属性: prototype 函数有方法: call()/apply() 可以添加新的属
阅读全文
摘要:几乎所有编程语言最基本的功能之一,就是能够储存变量当中的值,并且能在之后对这个 值进行访问或修改。事实上,正是这种储存和访问变量的值的能力将状态带给了程序。 尽管通常将 JavaScript 归类为“动态”或“解释执行”语言,但事实上它是一门编译语言。 总结:变量的赋值操作会执行两个动作,首先编译器
阅读全文
摘要:ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。 Set本身是一个构造函数,用来生成 Set 数据结构。 const s = new Set(); Set函数可以接受一个数组作为参数,用来初始化。 const set = new Set([1, 2, 3, 4
阅读全文
摘要:模板字符串(★★★) ES6新增的创建字符串的方式,使用反引号定义 javascript let name = ; javascript let name = '张三'; let sayHello = ; // hello, my name is zhangsan javascript let re
阅读全文
摘要:find() 方法 find() 方法返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined。 实例方法:findIndex() 用于找出第一个符合条件的数组成员的位置,如果没有找到返回 1 实例方法:includes() 判断某个数组是否包含给定的值,返回布尔值。
阅读全文
摘要:将伪数组或可遍历对象转换为真正的数组 方法还可以接受第二个参数,作用类似于数组的map方法,用来对每个元素进行处理,将处理后的值放入返回的数组。 注意:如果是对象,那么属性需要写对应的索引。
阅读全文
摘要:扩展运算符可以将 数组 或者 对象 转为用逗号分隔的参数序列。 let ary = [1, 2, 3]; ...ary // 1, 2, 3 console.log(...ary); // 1 2 3,相当于下面的代码 console.log(1,2,3); let obj = {aa: 11, b
阅读全文
摘要:剩余参数语法允许我们将一个不定数量的参数表示为一个数组,不定参数定义方式,这种方式很方便的去声明不知道参数情况下的一个函数。 用来取代arguments,但比arguments灵活, 只能是最后部分形参参数。 【箭头函数中,不能使用arguments,报错未定义。】 function sum (fi
阅读全文
摘要:1、ES6中新增的定义函数的方式 () => {} (1)():代表是参数; (2)=>:必须要的符号,指向哪一个代码块; (3){}:函数体 const fn = () => {} // 代表把一个函数赋值给fn 2、函数体中只有一句代码,且代码的执行结果就是返回值,可以省略大括号 functio
阅读全文
摘要:ES6中允许从数组中提取值,按照对应位置,对变量赋值,对象也可以实现解构。【解构:分解数据结构。】 解构赋值就是把数据结构分解,然后给变量进行赋值 如果解构不成功,变量跟数值个数不匹配的时候,变量的值为undefined 数组解构用中括号包裹,多个变量用逗号隔开,对象解构用花括号包裹,多个变量用逗号
阅读全文
摘要:应用场景:声明对象类型使用 const,非对象类型声明选择 let. 注意: 对象属性修改和数组元素变化不会出发 const 错误 【地址没变。】 声明常量,常量就是值(内存地址)不能变化的量 具有块级作用域 if (true) { const a = 10; } console.log(a) //
阅读全文
摘要:ES6相关概念(★★) 什么是ES6 ES 的全称是 ECMAScript , 它是由 ECMA 国际标准化组织,制定的一项脚本语言的标准化规范。 为什么使用 ES6 ? 每一次标准的诞生都意味着语言的完善,功能的加强。JavaScript语言本身也有一些令人不满意的地方。 变量提升特性增加了程序运
阅读全文
摘要:什么是对象? 多个数据(属性)的集合 用来保存多个数据(属性)的容器 属性组成: 属性名 : 字符串(标识) 属性值 : 任意类型 属性的分类: 一般 : 属性值不是function, 描述对象的状态 方法 : 属性值为function的属性, 描述对象的行为 特别的对象 数组: 属性名是0,1,2
阅读全文
摘要:什么是数据? 在内存中可读的、可传递的、保存了特定信息的'东东' 一切皆数据, 函数也是数据 在内存中的所有操作的目标: 数据 什么是变量? 在程序运行过程中,它的值是允许改变的量 一个变量对应一块小内存, 它的值保存在此内存中 什么是内存? 内存条通电后,产生的存储空间(临时的) 一块内存包含2个
阅读全文
摘要:判断 基本(值)类型 Number 任意数值 typeof 【typeof: 返回字符串; instanceof、===:返回布尔值。】 String 任意字符串 typeof Boolean true/false typeof undefined undefined typeof/=== 【因为u
阅读全文
摘要:1.正则表达式概述 1.1 什么是正则表达式 正则表达式( Regular Expression )是用于匹配字符串中字符组合的模式。在JavaScript中,正则表达式也是对象。 正则表通常被用来检索、替换那些符合某个模式(规则)的文本,例如验证表单:用户名表单只能输入英文字母、数字或者下划线,
阅读全文
摘要:浅拷贝:Object.assign(target, ...sources)。 **Object.assign()** :方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象,它将返回目标对象。 【lodash:_.cloneDeep(value) 可以实现 深拷贝。】 <!-- 补充:数组也
阅读全文
摘要:6.1什么是递归 递归: 如果一个函数在内部可以调用其本身,那么这个函数就是递归函数。 简单理解: 函数内部自己调用自己, 这个函数就是递归函数 注意: 递归函数的作用和循环效果一样,由于递归很容易发生“栈溢出”错误(stack overflow),所以必须要加退出条件return。 6.2 利用递
阅读全文
摘要:5.1 变量的作用域复习 变量根据作用域的不同分为两种:全局变量和局部变量。 1. 函数内部可以使用全局变量。 2. 函数外部不可以使用局部变量。 3. 当函数执行完毕,本作用域内的局部变量会销毁。 5.2 什么是闭包 闭包 (closure):指有权访问另一个函数作用域中的变量的函数。 【那应该就
阅读全文
摘要:高阶函数:就是对其他函数进行操作的函数,它接收函数作为参数,或将函数作为返回值输出。 此时fn 就是一个高阶函数。 函数也是一种数据类型,同样可以作为参数,传递给另外一个参数使用,最典型的就是作为回调函数。 同理函数也可以作为返回值传递回来。
阅读全文
摘要:3.1 什么是严格模式 JavaScript 除了提供正常模式外,还提供了严格模式(strict mode)。 ES5 的严格模式是采用具有限制性 JavaScript变体的一种方式,即在严格的条件下运行 JS 代码。 严格模式在 IE10 以上版本的浏览器中才会被支持,旧版本浏览器中会被忽略。 严
阅读全文
摘要:2.2.1 call方法 call()方法调用一个对象,简单理解为调用函数的方式,但是它可以改变函数的 this 指向 应用场景: 经常做继承。 以上代码运行结果为: 2.2.2 apply方法 apply() 方法调用一个函数。简单理解为调用函数的方式,但是它可以改变函数的 this 指向。 应用
阅读全文
摘要:这些 this 的指向,是当我们调用函数的时候确定的。调用方式的不同决定了this 的指向不同。 一般指向我们的调用者。
阅读全文
摘要:1.函数的定义和调用 1.1 函数的定义方式 1. 方式1 函数声明方式 function 关键字 (命名函数) 2. 方式2 函数表达式(匿名函数) 3. 方式3 new Function() 1.2 函数的调用
阅读全文
摘要:Object.defineProperty:设置或修改对象中的属性。 Object.defineProperty(obj, prop, descriptor)。 obj:必需,目标对象 prop:必需,需定义或修改的属性的名字 descriptor:必需,目标属性所拥有的特性 Object.defi
阅读全文
摘要:Object.keys(对象) :获取到当前对象中的属性名 ,返回值是有元素为字符串的一个数组,效果类似 for…in。
阅读全文
摘要:var str = ' hello ' console.log(str.trim()) //hello 去除两端空格 var str1 = ' he l l o ' console.log(str.trim()) //he l l o 去除两端空格 <!DOCTYPE html> <html lan
阅读全文
摘要:1. 定义数组对象数据 2. 使用forEach遍历数据并渲染到页面中 3. 根据价格筛选数据 1. 获取到搜索按钮并为其绑定点击事件 2. 使用filter将用户输入的价格信息筛选出来 2. 将筛选之后的数据重新渲染
阅读全文
摘要:3.1 数组方法forEach遍历数组 3.2 数组方法filter过滤数组 filter删除数组元素【最完美】 3.3 数组方法some 3.4 some、forEach、filter区别 如果查询数组中唯一的元素,用some方法更合适,在some 里面 遇到 return true 就是终止遍历
阅读全文
摘要:先定义一个父构造函数 再定义一个子构造函数 子构造函数继承父构造函数的属性(使用call方法) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=de
阅读全文
摘要:1. 先定义一个父构造函数 2. 再定义一个子构造函数 3. 子构造函数继承父构造函数的属性(使用call方法)
阅读全文
摘要:ES6之前并没有给我们提供 extends 继承。 我们可以通过构造函数 + 原型对象模拟实现继承,被称为组合继承。 【构造函数:集成属性,原型对象:集成方法。】 call():可以调用函数 call():可以修改this的指向, 使用call()的时候,参数一是修改后的this指向, 参数2, 参
阅读全文
摘要:1.10 原型对象中this指向 构造函数中的this和原型对象的this, 都指向我们new出来的实例对象。 1.11 通过原型,为数组扩展内置方法 可以通过原型对象,对原来的内置对象进行扩展自定义的方法。比如给数组增加自定义求偶数和的功能。 注意:数组和字符串内置对象不能给原型对象覆盖操作 Ar
阅读全文
摘要:1.8 原型链 【通过所有对象的__proto__属性,形成原型链。】 每一个实例对象又有一个__proto__属性,指向的构造函数的原型对象,构造函数的原型对象也是一个对象,也有__proto__属性,这样一层一层往上找就形成了原型链。 1.9 原型链和成员的查找机制 任何对象都有原型对象,
阅读全文
摘要:1.6 constructor构造函数 html 对象原型( __proto__)和构造函数原型对象(prototype)里面都有一个属性 constructor 属性 ,constructor 我们称为构造函数,因为 。 。 一般情况下,对象的方法都在构造函数的原型对象中设置。如果有多个对象的方法
阅读全文
摘要:### ```html 1、【实例】对象都会有一个属性 __proto__ 指向构造函数的 prototype 原型对象。 2、之所以我们对象可以使用构造函数 prototype 原型对象的属性和方法,就是因为对象有 __proto__ 原型的存在。 3、__proto__对象原型和原型对象 prototype 是等价的。 4、__proto__对象原型的意义,就在于为对象的查找机制提供一个方向,
阅读全文
摘要:构造函数通过原型分配的函数是所有【实例】对象所共享的 。 JavaScript 规定,每一个构造函数都有一个prototype 属性,指向另一个对象。注意,这个prototype就是一个对象,这个对象的所有属性和方法,都会被构造函数所拥有。 我们可以把那些不变的方法,直接定义在 prototype
阅读全文
摘要:构造函数方法很好用,但是存在浪费内存的问题。 js function Star(uname, age) { this.uname = uname; this.age = age; this.sing = function(song) { console.log( ); } } var s1 = ne
阅读全文
摘要:1.2.1 实例成员 实例成员就是构造函数内部通过this添加的成员 如下列代码中uname age sing 就是实例成员,实例成员只能通过实例化的对象来访问 1.2.2 静态成员 静态成员 在构造函数本身上添加的成员 如下列代码中 sex 就是静态成员,静态成员只能通过构造函数来访问
阅读全文
摘要:3.1 功能需求 1. 点击 tab栏,可以切换效果. 2. 点击 + 号, 可以添加 tab 项和内容项. 3. 点击 x 号, 可以删除当前的tab项和内容项. 4. 双击tab项文字或者内容项文字可以修改里面的文字内容 3.2 案例准备 1. 获取到标题元素 2. 获取到内容元素 3. 获取到
阅读全文
摘要:类 在 ES6 中新增加了类的概念,可以使用 class 关键字声明一个类,之后以这个类来实例化对象。 类抽象了对象的公共部分,它泛指某一大类(class) 对象特指某一个,通过类实例化一个具体的对象 面向对象的思维特点: 1. 抽取(抽象)对象共用的属性和行为组织(封装)成一个类(模板) 2. 对
阅读全文
摘要:2.1 对象 对象是由属性和方法组成的:是一个无序键值对的集合,指的是一个具体的事物 属性:事物的特征,在对象中用属性来表示(常用名词) 方法:事物的行为,在对象中用方法来表示(常用动词) 2.1.1 创建对象 如上两行代码运行结果为:
阅读全文
摘要:1.1 面向过程 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一个一个的依次调用就可以了。 1.2 面向对象 面向对象是把事务分解成为一个个对象,然后由对象之间分工与合作。 1.3 面向过程与面向对象对比 | | 面向过程 | 面向对象 | | | | |
阅读全文
摘要: jQuery中分别为我们提供了两套快速获取和设置元素尺寸和位置的API,方便易用,内容如下。 1.4.1 jQuery 尺寸操作 jQuery 尺寸操作包括元素宽高的获取和设置,且不一样的API对应不一样的盒子模型。 语法 代码演示 注意:有了这套 API 我们将可以快速获取和子的宽高,
阅读全文
摘要: 实际开发中,很多项目连续开发十多年,jQuery版本不断更新,最初的 jQuery 版本无法满足需求,这时就需要保证在旧有版本正常运行的情况下,新的功能使用新的jQuery版本实现,这种情况被称为,jQuery 多库共存。 语法
阅读全文
摘要: jQuery中分别为我们提供了两套快速获取和设置元素尺寸和位置的API,方便易用,内容如下。 语法 演示代码
阅读全文
摘要: jQuery 对DOM中的事件对象 event 进行了封装,兼容性更好,获取更方便,使用变化不大。事件被触发,就会有事件对象的产生。 语法 演示代码 注意:jQuery中的 event 对象使用,可以借鉴 API 和 DOM 中的 event 。
阅读全文
摘要: 当某个事件上面的逻辑,在特定需求下不需要的时候,可以把该事件上的逻辑移除,这个过程我们称为事件解绑。jQuery 为我们提供 了多种事件解绑方法:die() / undelegate() / off() 等,甚至还有只触发一次的事件绑定方法 one(),在这里我们重点讲解一下 off() ; 语
阅读全文
摘要: 因为普通注册事件方法的不足,jQuery又创建了多个新的事件绑定方法bind() / live() / delegate() / on()等,其中最好用的是: on() 语法 演示代码 1.2.2 案例:发布微博案例 1.点击发布按钮, 动态创建一个小li,放入文本框的内容和删除按钮, 并且添加
阅读全文
摘要:jQuery 元素操作主要讲的是用jQuery方法,操作标签的遍历、创建、添加、删除等操作。 append,prepend,after,before,remove,empty,html 1.3.1 遍历元素 jQuery 隐式迭代是对 同一类元素做了同样的操作 。 如果想要给同一类元素做不同操作
阅读全文
摘要:jQuery的文本属性值常见操作有三种:html() 、text() 、 val() ,分别对应JS中的 innerHTML 、innerText 和 value 属性。 1.2.1 jQuery内容文本值 常见操作有三种:html() / text() / val() ; 分别对应JS中的 i
阅读全文
摘要:jQuery 常用属性操作有三种:prop() 、 attr() 、 data() 。 1.1.1 元素固有属性值 prop() 所谓元素固有属性就是元素本身自带的属性,比如 元素里面的 href ,比如 元素里面的 type。 注意:prop() 除了普通属性操作,更适合操作表单属性:disa
阅读全文
摘要:效果 思路分析: 1.鼠标经过某个小li 有两步操作: 2.当前小li 宽度变为 224px, 同时里面的小图片淡出,大图片淡入 3.其余兄弟小li宽度变为69px, 小图片淡入, 大图片淡出 代码实现略。(详情参考源代码)
阅读全文
摘要: jQuery中为我们添加了一个新事件 hover() ; 功能类似 css 中的伪类 :hover 。介绍如下 语法 over:鼠标移到元素上要触发的函数(相当于mouseenter) out:鼠标移出元素要触发的函数(相当于mouseleave) 如果只写一个函数,则鼠标经过和离开都会触发它
阅读全文
摘要:动画或者效果一旦触发就会执行,如果多次触发,就造成多个动画或者效果排队执行。 停止动画排队的方法为:stop() ; stop() 方法用于停止动画或效果。 stop() 写到动画或者效果的前面, 相当于停止结束上一次的动画。 总结: 每次使用动画之前,先调用 stop() ,在调用动画。
阅读全文
摘要:自定义动画非常强大,通过参数的传递可以模拟以上所有动画,方法为:animate() ; 语法规范如下: 代码演示
阅读全文
摘要:淡入淡出动画,常见有四个方法:fadeIn() 、fadeOut() 、fadeToggle() 、fadeTo() 语法规范如下: 代码演示
阅读全文
摘要:滑入滑出动画,常见有三个方法:slideDown() / slideUp() / slideToggle() ; 语法规范如下: 代码演示 小案例:下拉菜单略(详情参看源码)。
阅读全文
摘要:jQuery 给我们封装了很多动画效果,最为常见的如下: 显示隐藏:show() / hide() / toggle() ; 划入画出:slideDown() / slideUp() / slideToggle() ; 淡入淡出:fadeIn() / fadeOut() / fadeToggle()
阅读全文
摘要: jQuery中常用的样式操作有两种:css() 和 设置类样式方法 1.4.1 方法1: 操作 css 方法 jQuery 可以使用 css 方法来修改简单元素样式; 也可以操作类,修改多个样式。 常用以下三种形式 : 注意:css() 多用于样式少时操作,多了则不太方便。 1.4.
阅读全文
摘要:原生 JS 获取元素方式很多,很杂,而且兼容性情况不一致,因此 jQuery 给我们做了封装,使获取元素统一标准。 1.3.1 基础选择器 1.3.2 层级选择器 层级选择器最常用的两个分别为:后代选择器和子代选择器。 基础选择器和层级选择器案例代码 1.3.3 筛选选择器 筛选选择器,顾名
阅读全文
摘要:1.2.1 jQuery 的下载 jQuery的官网地址: https://jquery.com/,官网即可下载最新版本。 各个版本的下载:https://code.jquery.com/ 版本介绍: 1x :兼容 IE 678 等低版本浏览器, 官网不再更新 2x :不兼容 IE 678
阅读全文
摘要:1.1.1 JavaScript 库 JavaScript库 :即 library,是一个封装好的特定的集合(方法和函数)。 从封装一大堆函数的角度理解库,就是在这个库中,封装了很多预先定义好的函数在里面,比如动画animate、hide、show,比如获取元素等。 简单理解: 就是一个JS 文件,
阅读全文
摘要:随着互联网的快速发展,基于网页的应用越来越普遍,同时也变的越来越复杂,为了满足各种各样的需求,会经常性在本地存储大量的数据,HTML5规范提出了相关解决方案。 1.7.1 本地存储特性 1、数据存储在用户浏览器中 2、设置、读取方便、甚至页面刷新不丢失数据 3、容量较大,sessionStorage
阅读全文
摘要:1.5.1 什么是插件 移动端要求的是快速开发,所以我们经常会借助于一些插件来帮我完成操作,那么什么是插件呢? JS 插件 :是 js 文件,它遵循一定规范编写,方便程序展示效果,拥有特定功能且方便调用。如轮播图和瀑布流插件。 特点:它一般是为了解决某个问题而专门存在,其功能单一,并且比较小。 我们
阅读全文
摘要:移动端 click 事件会有 300ms 的延时,原因是移动端屏幕双击会缩放(double tap to zoom) 页面。 解决方案: 1.4.1 禁用缩放 浏览器禁用默认的双击缩放行为并且去掉300ms 的点击延迟。 1.4.2 利用touch事件自己封装这个事件解决300ms 延迟 原理就
阅读全文
摘要:classList属性是HTML5新增的一个属性,返回元素的类名。但是ie10以上版本支持。 该属性用于在元素中添加,移除及切换 CSS 类。有以下方法 添加类: element.classList.add(’类名’); 移除类: element.classList.remove(’类名’); 切换
阅读全文
摘要:1.3.1 触屏事件概述 移动端浏览器兼容性较好,我们不需要考虑以前 JS 的兼容性问题,可以放心的使用原生 JS 书写效果,但是移动端也有自己独特的地方。比如触屏事件 touch(也称触摸事件),Android和 IOS 都有。 touch 对象代表一个触摸点。触摸点可能是一根手指,也可能是一根触
阅读全文
摘要:1. 利用动画函数做动画效果 2. 原先筋斗云的起始位置是0 3. 鼠标经过某个小li,把当前小li的offsetLeft 位置做为目标值即可 4. 鼠标离开某个小li,就把目标值设为 0 5. 如果点击了某个小li, 就把li当前的位置存储起来,做为筋斗云的起始位置
阅读全文
摘要:返回顶部 1. 带有动画的返回顶部 2. 此时可以继续使用我们封装的动画函数 3. 只需要把所有的left 相关的值改为 跟 页面垂直滚动距离相关就可以了 4. 页面滚动了多少,可以通过 window.pageYOffset 得到 5. 最后是页面滚动,使用 window.scroll(x,y)
阅读全文
摘要:轮播图也称为焦点图,是网页中比较常见的网页特效。 功能需求: 1.鼠标经过轮播图模块,左右按钮显示,离开隐藏左右按钮。 2.点击右侧按钮一次,图片往左播放一张,以此类推,左侧按钮同理。 3.图片播放的同时,下面小圆圈模块跟随一起变化。 4.点击小圆圈,可以播放相应图片。 5.鼠标
阅读全文
摘要:1.6.1 动画实现原理 核心原理:通过定时器 setInterval() 不断移动盒子位置。 实现步骤: 1. 获得盒子当前位置 2. 让盒子在当前位置加上1个移动距离 3. 利用定时器不断重复这个操作 4. 加一个结束定时器的条件 5. 注意此元素需要添加定位,才能使用element.style
阅读全文
摘要:当鼠标移动到元素上时就会触发mouseenter 事件 类似 mouseover,它们两者之间的差别是 mouseover 鼠标经过自身盒子会触发,经过子盒子还会触发 。 mouseenter 只会经过自身盒子触发 。 之所以这样,就是因为mouseenter不会冒泡 跟mouseenter搭配鼠标
阅读全文
摘要:他们主要用法: 1.offset系列 经常用于获得元素位置 offsetLeft offsetTop 2.client经常用于获取元素大小 clientWidth clientHeight 3.scroll 经常用于获取滚动距离 scrollTop scrollLeft 4.注意页面滚动的距离通过
阅读全文
摘要:1.3.1 scroll 概述 scroll 翻译过来就是滚动的,我们使用 scroll 系列的相关属性可以动态的得到该元素的大小、滚动距离等。 1.3.2 页面被卷去的头部 如果浏览器的高(或宽)度不足以显示整个页面时,会自动出现滚动条。当滚动条向下滚动时,页面上面被隐藏掉的高度,我们就称为页面被
阅读全文
摘要:1.2.1 client概述 client 翻译过来就是客户端,我们使用 client 系列的相关属性来获取元素可视区的相关信息。通过 client 系列的相关属性可以动态的得到该元素的边框大小、元素大小等。 1.2.2. 淘宝 flexible.js 源码分析 立即执行函数 (function()
阅读全文
摘要:1.1.6 案例:仿京东放大镜 整个案例可以分为三个功能模块 鼠标经过小图片盒子, 黄色的遮挡层 和 大图片盒子显示,离开隐藏2个盒子功能 黄色的遮挡层跟随鼠标功能。 移动黄色遮挡层,大图片跟随移动功能。 1.1.7 案例分析 黄色的遮挡层跟随鼠标功能。 把鼠标坐标给遮挡层不合适。因为遮挡层坐标以父
阅读全文
摘要:弹出框,我们也称为模态框。 1.点击弹出层,会弹出模态框, 并且显示灰色半透明的遮挡层。 2.点击关闭按钮,可以关闭模态框,并且同时关闭灰色半透明遮挡层。 3.鼠标放到模态框最上面一行,可以按住鼠标拖拽模态框在页面中移动。 4.鼠标松开,可以停止拖动模态框移动 1.1.5 模态框拖拽
阅读全文
摘要:1. 我们在盒子内点击,想要得到鼠标距离盒子左右的距离。 2. 首先得到鼠标在页面中的坐标(e.pageX, e.pageY) 3. 其次得到盒子在页面中的距离 ( box.offsetLeft, box.offsetTop) 4. 用鼠标距离页面的坐标减去盒子在页面中的距离,得到 鼠标在盒子内的坐
阅读全文
摘要:1.1.1 offset 概述 offset 翻译过来就是偏移量, 我们使用 offset系列相关属性可以动态的得到该元素的位置(偏移)、大小等。 1.1.2 offset 与 style 区别 offset offset 可以得到任意样式表中的样式值 offset 系列获得的数值是没有单位的 of
阅读全文
摘要: window对象给我们提供了一个 history对象,与浏览器历史记录进行交互。该对象包含用户(在浏览器窗口中)访问过的URL。 history对象一般在实际开发中比较少用,但是会在一些 OA 办公系统中见到。
阅读全文
摘要: navigator 对象包含有关浏览器的信息,它有很多属性,我们最常用的是 userAgent,该属性可以返回由客户机发送服务器的 user agent 头部的值。 下面前端代码可以判断用户那个终端打开页面,实现跳转
阅读全文
摘要:1.2.7.1 什么是 location 对象 1.2.7.2 URL 统一资源定位符:URL(Uniform Resource Locator) , 是互联网上标准资源的地址。互联网上的每个文件都有 一个唯一的 URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。 URL 的一般语法格式为
阅读全文
摘要:以下代码执行的结果是什么? 【结果是1 2 3 】 以下代码执行的结果是什么? 【结果是1 2 3 】 1.3.1 JS 是单线程 1.3.2 同步任务和异步任务 单线程导致的问题就是后面的任务等待前面任务完成,如果前面任务很耗时(比如读取网络数据),后面任务不得不一直等待!! 为了解决这个
阅读全文
摘要: this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,一般情况下this的最终指向的是那个调用它的对象。 现阶段,我们先了解一下几个this指向 全局作用域或者普通函数中this指向全局对象window(注意定时器里面的this指向window) 【全局作用域
阅读全文
摘要:1、开启定时器 timeout:暂停; 超时。 interval: (时间上的) 间隔,间隙,间歇。 2、案例:京东倒计时
阅读全文
摘要:1、开启定时器 js 普通函数是按照代码顺序直接调用。 【我的理解: 。】 简单理解: 回调,就是 的意思。上一件事干完,再回头再调用这个函数。 例如:定时器中的调用函数,事件处理函数,也是回调函数。 以前我们讲的 element.onclick = function(){} 或者 element.
阅读全文
摘要:1.2.4.1 页面(窗口)加载事件(2种) 第1种:window.onload window.onload 是窗口 (页面)加载事件, 当文档内容完全加载完成 会触发该事件(包括图像、脚本文件、CSS 文件等), 就调用的处理函数。 第2种:DOMContentLoaded DOMConten
阅读全文
摘要:1.2.1 什么是BOM BOM(Browser Object Model)即浏览器对象模型,它提供了独立于内容而与浏览器窗口进行交互的对象,其核心对象是 window。 BOM 由一系列相关的对象构成,并且每个对象都提供了很多方法与属性。 BOM 缺乏标准,JavaScript 语法的
阅读全文
摘要:1.1.1 键盘事件 keyup、keydown不区分大小写,keypress 区分大小写 keyup、keydown能识别功能键,keypress 不能识别功能键 1.1.2 键盘事件对象 使用keyCode属性判断用户按下哪个键 1.1.3 案例:模拟京东按键输入内容 当我们按下 s 键, 光标
阅读全文
摘要:event对象代表事件的状态,跟事件相关的一系列信息的集合。现阶段我们主要是用鼠标事件对象 MouseEvent 和键盘事件对象 KeyboardEvent。 1.4.3 获取鼠标在页面的坐标 1.4.4 案例:跟随鼠标的天使
阅读全文
摘要: ```js 我是一段不愿意分享的文字 ```
阅读全文
摘要:事件冒泡本身的特性,会带来的坏处,也会带来的好处。 1.3.8.1 什么是事件委托 事件委托:也称为事件代理,在 jQuery 里面称为事件委派。 说白了就是,不给子元素注册事件,给父元素注册事件,把处理代码在父元素的事件中执行。 生活中的代理: js事件中的代理: 1.3.8.2 事件委托的原理
阅读全文
摘要:事件冒泡本身的特性,会带来的坏处,也会带来的好处。 阻止事件冒泡的兼容性处理
阅读全文
摘要:html中一些标签有默认行为,例如a标签被单击后,默认会进行页面跳转。
阅读全文
摘要:1.3.5.1 什么是事件对象 事件对象 :事件发生后,跟事件相关的一系列信息数据的集合都放到这个对象里面,这个对象就是事件对象。 比如: 1. 谁绑定了这个事件。 2. 鼠标触发事件的话,会得到鼠标的相关信息,如鼠标位置。 3. 键盘触发事件的话,会得到键盘的相关信息,如按了哪个键。 1.3.5.
阅读全文
摘要:DOM事件流 事件流 :描述的是从页面中接收事件的顺序。 事件 发生时会在元素节点之间按照特定 的 顺序传播,这个 传播过程 即 DOM 事件流 。 比如:我们给页面中的一个div注册了单击事件,当你单击了div时,也就单击了body,单击了html,单击了document。 DOM 事件流会经历3
阅读全文
摘要:1.3.1 注册事件(2种方式) 给元素添加事件,称为 注册事件 或者 绑定事件 。 注册事件有两种方式: 传统方式 和 方法监听 注册方式。 1.3.1.1 传统注册方式 利用 on 开头的事件 onclick 特点: 1、注册事件的 唯一性 2、同一个元素同一个事件只能设置一个处理函数,最后注册
阅读全文
摘要:关于dom操作,我们主要针对于元素的操作。主要有创建、增、删、改、查、属性操作、事件操作。 1.2.1 创建 1.2.2 增加 1.2.3 删 1.2.4 改 1.2.5 查 1.2.6 属性操作 1.2.7 事件操作(重点)
阅读全文
摘要:1.1.1 删除节点 1.1.2 案例:删除留言 1.1.3 复制(克隆)节点 1.1.4 案例:动态生成表格 1.1.5 创建元素的三种方式 1.1.6 innerTHML和createElement效率对比 innerHTML字符串拼接方式(效率低) createElement方式(效率一般)
阅读全文
摘要:为什么学节点操作 1.6.1 节点概述 网页中的所有内容都是节点(标签、属性、文本、注释等),在DOM 中,节点使用 node 来表示。 HTML DOM 树中的所有节点均可通过 JavaScript 进行访问,所有 HTML 元素(节点)均可被修改,也可以创建或删除。 一般地,节点至少
阅读全文
摘要:1.5.1 获取属性值 1.5.2 设置属性值 1.5.3 删除属性 1.5.4. 案例:tab栏 1.5.5 H5自定义属性 自定义属性目的:为了保存并使用数据。有些数据可以保存到页面中而不用保存到数据库中。 自定义属性获取:可以通过 getAttribute(‘属性’) 获取 。 但是有些自定义
阅读全文
摘要:我们可以通过 JS 修改元素的大小、颜色、位置等样式。 常用方式 1.5.6.1 方式1:通过操作style属性 元素对象的style属性也是一个对象! 元素对象.style.样式属性 = 值; 案例代码 案例:淘宝点击关闭二维码 案例:循环精灵图背景 案例:显示隐藏文本框内容 方式2:通过操作cl
阅读全文
摘要:利用 DOM 可以操作如下表单元素的属性: type、value、checked、selected、disabled。 获取属性的值 元素对象.属性名 设置属性的值 元素对象.属性名 = 值 表单元素中有一些属性如:disabled、checked、selected,元素对象的这些属性的值是布尔型。
阅读全文
摘要:1.获取属性的值 元素对象.属性名 2.设置属性的值 元素对象.属性名 = 值 案例代码
阅读全文
摘要: JavaScript的 DOM 操作可以改变网页内容、结构和样式,我们可以利用 DOM 操作元素来改变元素里面的内容、属性等。(注意:这些操作都是通过元素对象的属性实现的) 1.5.1 改变元素内容(获取或设置) 1.5.1.1 innerText改变元素内容 1.5.1.2 innerText
阅读全文
摘要:1.4.1 事件概述 JavaScript 使我们有能力创建动态页面,而事件是可以被 JavaScript 侦测到的行为。 简单理解: 触发 响应机制 。 网页中的每个元素都可以产生某些可以触发 JavaScript 的事件,例如,我们可以在用户点击某按钮时产生一个 事件,然后去执行某些操作。
阅读全文
摘要:为什么要获取页面元素? 例如:我们想要操作页面上的某部分(显示/隐藏,动画),需要先获取到该部分对应的元素,再对其进行操作。 1.3.1. 根据ID获取 案例代码 1.3.2. 根据标签名获取元素 案例代码 注意:getElementsByTagName()获取到是动态集合,即:当页面增加了标签,这
阅读全文
摘要:1.2.1 什么是DOM 文档对象模型(Document Object Model,简称DOM),是 "W3C" 组织推荐的处理 "可扩展标记语言" (html或者xhtml)的标准 "编程接口" 。 W3C 已经定义了一系列的 DOM 接口,通过这些 DOM 接口可以改变网页的内容、结构和
阅读全文
摘要:1.1. Web API介绍 1.1.1 API的概念 API :Application Programming Interface,应用程序编程接口,是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,无需理解其内部工作机制细节,只需直接调用
阅读全文
摘要:2.1 简单数据类型 简单类型 ( 基本数据类型 、 值类型 ):在存储时,变量中存储的是值本身,包括string ,number,boolean,undefined,null 2.2 复杂数据类型 复杂数据类型(引用类型) :在存储时,变量中存储的仅仅是地址(引用),通过 new 关键字创
阅读全文
摘要:1.6.1 基本包装类型 为了方便操作基本数据类型,JavaScript 还提供了三个特殊的引用类型:String、Number和 Boolean。 基本包装类型:就是把简单数据类型包装成为复杂数据类型,这样基本数据类型就有了属性和方法。 // 下面代码有什么问题? var str = 'a
阅读全文
摘要:1.5.1 创建数组的两种方式 1.5.1.1 字面量方式 示例代码如下: var arr = [1,"test",true]; 1.5.1.2 new Array() 示例代码如下: var arr = new Array(); 注意:上面代码中arr创建出的是一个空数组,如果需要使用构造函数
阅读全文
摘要:Date 对象和 Math 对象不一样,Date是一个构造函数,所以使用时需要实例化后才能使用其中具体方法和属性。Date 实例用来处理日期和时间 1.4.1 使用Date实例化日期对象 获取当前时间必须实例化 注意:如果创建实例时并未传入参数,则得到的日期对象是当前时间对应的日期对象 获取指定时间
阅读全文
摘要: Math 对象不是构造函数,它具有数学常数和函数的属性和方法。跟数学相关的运算(求绝对值,取整、最大值等)可以使用 Math 中的成员。 | 属性、方法名 | 功能 | | | | | Math.PI | 圆周率 | | Math.floor() | 向下取整 | | Math.ceil() |
阅读全文
摘要:1.内置对象 1.1 内置对象 JavaScript 中的对象分为3种: 自定义对象 、内置对象、 浏览器对象 前面两种对象是JS 基础 内容,属于 ECMAScript; 第三个浏览器对象属于 JS 独有的, JS API 讲解内置对象就是指 JS 语言自带的一些对象,这些对象供开发者使用
阅读全文
摘要:遍历对象:for...in js for...in 语句用于对 的属性进行循环操作。 其语法如下: js for (变量 in 对象名字) { // 在此执行代码 } js 语法中的变量是自定义的,它需要符合命名规范,通常我们会将这个变量写为 k 或者 key。 js for (var k in o
阅读全文
摘要:我的版本 在构造函数代码开始执行之前,创建一个空对象; 设置新对象的__proto__指向构造函数的prototype对象,p.proto = XXXX.prototype; 执行构造函数,修改this的指向,让构造函数中的this指向创建出来的空对象,拷贝构造函数中的方法、属性给新对象; 判断构造
阅读全文
摘要:5.2.3.1 构造函数 构造函数:是一种特殊的函数,主要用来初始化对象,即为对象成员变量赋初始值,它总与 new 运算符一起使用。我们可以把对象中一些公共的属性和方法抽取出来,然后封装到这个函数里面。 构造函数的封装格式: 构造函数的调用格式 以上代码中,obj即接收到构造函数创建出来的对象。 注
阅读全文
摘要:创建空对象 通过内置构造函数Object创建对象,此时andy变量已经保存了创建出来的空对象 给空对象添加属性和方法 通过对象操作属性和方法的方式,来为对象增加属性和方法 示例代码如下: 注意: Object() :第一个字母大写 new Object() :需要 new 关键字 使用的格式:对象.
阅读全文
摘要:在 JavaScript 中,现阶段我们可以采用三种方式创建对象(object): 利用字面量创建对象 利用 new Object 创建对象 利用构造函数创建对象 5.2.1 利用字面量创建对象 5.2.1.1 创建 使用对象字面量创建对象 :{ }。 键:相当于属性名 值:相当于属性值,可以是任意
阅读全文
摘要:5.1 对象的相关概念 5.1.1 什么是对象? 现实生活中:万物皆对象, 对象是一个具体的事物 ,看得见摸得着的实物。例如,一本书、一辆汽车、一个人 可以是“对象”,一个数据库、一张网页、一个与远程服务器的连接也可以是“对象”。 在 JavaScript 中, 对象是一组无序的相关属性和方法的集合
阅读全文
摘要:4.1 预解析的相关概念 JavaScript 代码是由浏览器中的 JavaScript 解析器来执行的。 JavaScript 解析器在运行 JavaScript 代码的时候分为两步:预解析 和 代码执行。 预解析:在当前作用域下, JS 代码执行之前,浏览器会默认把带有 var 和 functi
阅读全文
摘要:作用域链 js 只要是代码都一个作用域中,写在函数内部的局部作用域,未写在任何函数内部,即在全局作用域中; 如果函数中还有函数,那么在这个作用域中就又可以诞生一个作用域; 根据在[ ]的这种机制,用链式查找决定哪些数据能被内部函数访问,就称作作用域链。 作用域链:采取就近原则的方式来查找变量最终的值
阅读全文
摘要:在JavaScript中,根据作用域的不同,变量可以分为两种: 全局变量 局部变量 2.1 全局变量 在全局作用域下声明的变量叫做全局变量(在函数外部定义的变量)。 全局变量在代码的任何位置都可以使用 在全局作用域下 var 声明的变量 是全局变量 特殊情况下,在函数内不使用 var 声明的变量也是
阅读全文
摘要:1.1 作用域概述 通常来说,一段程序代码中所用到的名字并不总是有效和可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。作用域的使用提高了程序逻辑的局部性,增强了程序的可靠性,减少了名字冲突。 JavaScript(es6前)中的作用域有两种: 全局作用域 局部作用域(函数作用域) 1.
阅读全文
摘要:2.8.1 自定义函数方式(命名函数) 利用函数关键字 function 自定义函数方式 因为有名字,所以也被称为命名函数 调用函数的代码既可以放到声明函数的前面,也可以放在声明函数的后面 2.8.2 函数表达式方式(匿名函数) 利用函数表达式方式的写法如下: 因为函数没有名字,所以也被称为匿名函数
阅读全文
摘要:因为每个函数都是独立的代码块,用于完成特殊任务,因此经常会用到函数相互调用的情况。
阅读全文
摘要:函数内部可以调用另一个函数,在同一作用域代码中,函数名即代表封装的操作,使用函数名加括号即可以将封装的操作执行。
阅读全文
摘要: 当不确定有多少个参数传递的时候,可以用 arguments 来获取。JavaScript 中,arguments实际上它是当前函数的一个 内置对象 。所有函数都内置了一个 arguments 对象,arguments 对象中存储了 传递的所有实参 。 arguments展示形式是一个 伪数组 ,
阅读全文
摘要:2.4.1 return 语句 只要函数遇到return,就把return后面的结果 返回给函数的调用者, 函数名() = return后面的结果 。 2.4.2 return 终止函数 return 语句之后的代码不被执行。 2.4.3 return 只能返回一个值 return 只能返回一个值。
阅读全文
摘要:2.3.1 函数参数语法 形参:函数定义时,设置接收调用时传入 实参:函数调用时,传入小括号内的真实数据 参数的作用 : 在函数内部某些值不能固定,我们可以通过参数在调用函数时传递不同的值进去。 函数参数的运用: 1. 调用的时候,实参值是传递给形参的 2. 形参简单理解为:不用声明的变量 【
阅读全文
摘要:2.1 函数的概念 你可能会定义非常多的相同代码或者功能相似的代码,这些代码可能需要大量重复使用。虽然 for循环语句也能实现一些简单的重复操作,但是比较具有局限性,此时我们就可以使用 JS 中的函数。 函数:就是 封装了一段可被重复调用执行的代码块 。通过此代码块可以 实现大量代码的重复使用 。
阅读全文
摘要:算法:观察执行过程,找到规律,转为代码。 // 冒泡排序 // var arr = [5, 4, 3, 2, 1]; var arr = [4, 1, 2, 3, 5]; // 外层循环管趟数 【5个元素,冒泡排序4趟,应该是arr.length - 2,结果一样】 for (var i = 0;
阅读全文
摘要: 数组中可以通过以下方式在 数组的末尾插入新元素 : 1.5.1 通过修改 length 长度新增数组元素 可以通过修改 length 长度来实现数组扩容的目的 length 属性是可读写的 其中索引号是 4,5,6 的空间没有给值,就是声明变量未给值,默认值就是 undefined。 1.5.2
阅读全文
摘要:1.4.1 数组遍历 遍历:把数组中的每个元素从头到尾都访问一次(类似学生的点名),可以通过 for 循环索引遍历数组中的每一项。
阅读全文
摘要:1.1 数组的概念 数组可以把一组相关的数据一起存放,并提供方便的访问(获取)方式。 数组是指 一组数据的集合 ,其中的每个数据被称作 元素 ,在数组中可以 存放任意类型的元素 。数组是一种将一组数据存储在单个变量名下的优雅方式。 1.2 创建数组 JS 中创建数组有两种方式: 利用 new 创建数
阅读全文
摘要:2.1 标识符命名规范 变量、函数的命名必须要有意义 变量的名称一般用名词 函数的名称一般用动词 2.2 操作符规范 2.3 单行注释规范 2.4 其他规范 关键词、操作符之间后加空格
阅读全文
摘要:1.6.1 continue continue 关键字用于立即跳出本次循环,继续下一次循环(本次循环体中 continue 之后的代码就会少执行一次)。 例如,吃5个包子,第3个有虫子,就扔掉第3个,继续吃第4个第5个包子,其代码实现如下: 运行结果: 1.6.2 break 关键字 break 关
阅读全文
摘要:1.3 while循环 while语句的语法结构如下: 执行思路: 1 先执行条件表达式,如果结果为 true,则执行循环体代码;如果为 false,则退出循环,执行后面代码 2 执行循环体代码 3 循环体代码执行完毕后,程序会继续判断执行条件表达式,如条件仍为true,则会继续执行循环体,直到循环
阅读全文
摘要:1.2.1 双重 for 循环概述 1.2.2 双重 for 循环语法 内层循环可以看做外层循环的循环体语句 内层循环执行的顺序也要遵循 for 循环的执行顺序 外层循环执行一次,内层循环要执行全部次数 js str = ''; for (let i = 1; i < 10; i++) { for
阅读全文
摘要:1.1 for循环 1.1.1 语法结构 | 名称 | 作用 | | | | | 初始化变量 | 通常被用于初始化一个 计数器 ,该表达式可以使用 var 关键字声明新的变量,这个变量帮我们来记录次数。 | | 条件表达式 | 用于确定每一次循环是否能被执行。如果结果是 true, 就继续循环,否则
阅读全文
摘要:``` 断点调试是指自己在程序的某一行设置一个断点,调试时,程序运行到这一行就会停住,然后你可以一步一步往下调试,调试过程中可以看各个变量当前的值,出错的话,调试到出错的代码行即显示错误,停下。断点调试可以帮助观察程序的运行过程 ``` ```html 断点调试的流程: 1、浏览器中按 F12--> sources -->找到需要调试的文件-->在程序的某一行设置断点 2、Watch: 监视,通过
阅读全文
摘要:2.5.1 语法结构、执行思路、注意事项 switch 语句也是多分支语句,它用于基于不同的条件来执行不同的代码。当要针对变量设置一系列的特定值的选项时,就可以使用 switch。 switch :开关 转换 , case :小例子 选项 关键字 switch 后面括号内可以是 表达式或值 , 通常
阅读全文
摘要:有三元运算符组成的式子,称为三元表达式。【三个表达式】 ++num:是一元运算; 3 + 5:两个操作数,是二元运算。 三元表达式也能做一些简单的条件选择。 语法结构 执行思路 如果表达式1为 true ,则返回表达式2的值,如果表达式1为 false,则返回表达式3的值 简单理解: 就类似于 if
阅读全文
摘要:2.3.1 分支结构 由上到下执行代码的过程中,根据不同的条件,执行不同的路径代码(执行代码多选一的过程),从而得到不同的结果 JS 语言提供了两种分支结构语句:if 语句、switch 语句 2.3.2 if 语句 语法结构 执行流程 2.3.3 if else语句(双分支语句) 语法结构 执行流
阅读全文
摘要:2.1 流程控制概念 在一个程序执行的过程中,各条代码的执行顺序对程序的结果是有直接影响的。很多时候我们要通过控制代码的执行顺序来实现我们要完成的功能。 简单理解: 流程控制就是来控制代码按照一定结构顺序来执行 流程控制主要有三种结构,分别是 顺序结构 、 分支结构 和 循环结构 ,代表三种代码执行
阅读全文
摘要:一元运算符里面的逻辑非优先级很高 逻辑与比逻辑或优先级高
阅读全文
摘要:```js 概念:用来把数据赋值给变量的运算符。 ```  ```js var age = 10; age += 5; // 相当于 age = age + 5; age -= 5; // 相当于 age = age
阅读全文
摘要:短路运算的原理:当有多个表达式(值)时,左边的表达式值可以确定结果时,就不再继续运算右边的表达式的值。 1.5.5.1 逻辑与 语法: 表达式1 && 表达式2 1.5.5.2 逻辑或 语法: 表达式1 || 表达式2
阅读全文
摘要:1.5.1 逻辑运算符概述 概念:逻辑运算符是用来进行布尔值运算的运算符,其返回值也是布尔值。后面开发中经常用于多个条件的判断。 1.5.2 逻辑与&& 两边都是 true才返回 true,否则返回 false。 1.5.3 逻辑或 || 两边都为 false 才返回 false,否则都为true。
阅读全文
摘要:概念:比较运算符(关系运算符)是两个数据进行比较时所使用的运算符,比较运算后,会返回一个布尔值(true / false)作为比较运算的结果。 等号比较 ===: 全等,数据类型要相同,再比较值是否相等 ==:只要值相等即可
阅读全文
摘要:递增和递减运算符概述 如果需要反复给数字变量添加或减去1,可以使用递增(++)和递减( )运算符来完成。 在 JavaScript 中,递增(++)和递减( )既可以放在变量前面,也可以放在变量后面。放在变量前面时,我们可以称为前置递增(递减)运算符,放在变量后面时,我们可以称为后置递增(递减)运算
阅读全文
摘要:1.运算符(操作符) 1.1 运算符的分类 运算符 (operator)也被称为操作符,是用于实现赋值、比较和执行算数运算等功能的符号。 JavaScript中常用的运算符有: 算数运算符 递增和递减运算符 比较运算符 逻辑运算符 赋值运算符 1.2 算数运算符 算术运算符概述 概念:算术运算使用的
阅读全文
摘要:10.1 标识符 标识(zhi)符:就是指开发人员为变量、属性、函数、参数取的名字。 标识符不能是关键字或保留字。 10.2 关键字 关键字:是指 JS本身已经使用了的字,不能再用它们充当变量名、方法名。 包括:break、case、catch、continue、default、delete、do、
阅读全文
摘要:9.1 概述 翻译器翻译的方式有两种:一个是编译,另外一个是解释。两种方式之间的区别在于翻译的时间点不同。 编译器是在代码执行之前进行编译,生成中间代码文件。 解释器是在运行时进行及时解释,并立即执行(当编译器以解释方式运行的时候,也称之为解释器)。 9.2 执行过程
阅读全文
摘要:8.4.3.转换为布尔型 代表空、否定的值会被转换为 false ,如 ''、0、NaN、null、undefined 其余值都会被转换为 true
阅读全文
摘要:8.4.2.转换为数字型 (重点) 注意 parseInt 和 parseFloat 单词的大小写,这2个是重点 【parseInt:取整,取以数字开头的对象的开头的数字;不四舍五入,直接截断;参数是非数字开头的对象,结果是NaN。】 隐式转换是我们在进行算数运算的时候,JS 自动转换了数据类型
阅读全文
摘要:什么是数据类型转换? 使用表单、prompt 获取过来的数据默认是字符串类型的,此时就不能直接简单的进行加法运算,而需要转换变量的数据类型。通俗来说,就是把一种数据类型的变量转换成另一种数据类型,通常会实现3种方式的转换: 8.4.1 .转换为字符串 toString() 和 String()
阅读全文
摘要:1.获取检测变量的数据类型 typeof 可用来获取检测变量的数据类型 不同类型的返回值 2.字面量 字面量是在源代码中一个 固定值 的表示法,通俗来说,就是字面量表示如何表达这个值。 【字面量:固定值的表示方法,一看就知道数据是哪种数据类型。】 数字字面量:8, 9, 10 字符串字面量:'J
阅读全文
摘要:8.2.3 布尔型Boolean 布尔类型有两个值:true 和 false ,其中 true 表示真(对),而 false 表示假(错)。 布尔型和数字型相加的时候, true 的值为 1 ,false 的值为 0。【应该说布尔型和数字型做数学运算时。】 8.2.4 Undefined和
阅读全文
摘要:字符串型可以是引号中的任意文本,其语法为 双引号 "" 和 单引号'' 因为 HTML 标签里面的属性使用的是双引号,JS 这里我们更 推荐使用单引号 。 1.字符串引号嵌套 JS 可以用 单引号嵌套双引号 ,或者用 双引号嵌套单引号 ( 外双内单,外单内双 ) 2.字符串转义符 类似HTML里
阅读全文