js代码

JS中的事件委托 / 代理详解

╄→гoц情女王★ 提交于 2019-12-16 01:57:46
【前言】 事件委托/代理是前端面试的经典题型,要去找工作的小伙伴看看还是有帮助的 【主体】 概述: 那什么叫事件委托呢?它还有一个名字叫事件代理,JavaScript高级程序设计上讲:事件委托就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。那这是什么意思呢?网上的各位大牛们讲事件委托基本上都用了同一个例子,就是取快递来解释这个现象,我仔细揣摩了一下,这个例子还真是恰当,我就不去想别的例子来解释了,借花献佛,我摘过来,大家认真领会一下事件委托到底是一个什么原理: 有三个同事预计会在周一收到快递。为签收快递,有两种办法:一是三个人在公司门口等快递;二是委托给前台MM代为签收。现实当中,我们大都采用委托的方案(公司也不会容忍那么多员工站在门口就为了等快递)。前台MM收到快递后,她会判断收件人是谁,然后按照收件人的要求签收,甚至代为付款。这种方案还有一个优势,那就是即使公司里来了新员工(不管多少),前台MM也会在收到寄给新员工的快递后核实并代为签收。 这里其实还有2层意思的: 第一,现在委托前台的同事是可以代为签收的,即程序中的现有的dom节点是有事件的; 第二,新员工也是可以被前台MM代为签收的,即程序中新添加的dom节点也是有事件的。 为什么要用事件委托: 一般来说,dom需要有事件处理程序,我们都会直接给它设事件处理程序就好了

wep前端入门04_JavaScript基础

倾然丶 夕夏残阳落幕 提交于 2019-12-16 00:43:57
内容: JavaScript概述 JavaScript基本语法 JavaScript数据类型 JavaScript运行符 JavaScript流程控制语句 JavaScript基本对象 1. JavaScript 1.1 JavaScript概念 1.1.1 JavaScript 简介 运行在客户端浏览器中的。每一个浏览器都有JavaScript的解析引擎 脚本语言:不需要编译,直接就可以被浏览器解析执行了 1.1.2 JavaScript 功能 可以来增强用户和html页面的交互过程,可以来控制html元素,让页面有一些动态的效果,增强用户的体验。 1.1.3 JavaScript发展史 1. 1992年,Nombase公司,开发出第一门客户端脚本语言,专门用于表单的校验。命名为 :C--,后来更名为:ScriptEase 2. 1995年,Netscape(网景)公司,开发了一门客户端脚本语言:LiveScript。后来,请来SUN公司的专家,修改LiveScript,命名为JavaScript 3. 1996年,微软抄袭JavaScript开发出JScript语言 4. 1997年,ECMA(欧洲计算机制造商协会),制定出客户端脚本语言的标准:ECMAScript,就是统一了所有客户端脚本语言的编码方式。 JavaScript组成: JavaScript =

初学js~~逼格很低的轮播图

白昼怎懂夜的黑 提交于 2019-12-15 22:29:04
萌新初学js 一个逼格很低的轮播图 ^ v ^ html 中代码 < div class = "wraper" > < div id = "pre" > < < / div > < div id = "next" > > < / div > < div class = "clear" > < / div > < img src = "./img/玉剑传说刀妹.jpg" alt = "" class = "active" > < img src = "./img/玉剑传说瑞文.jpg" alt = "" > < img src = "./img/阿卡丽(1).jpg" alt = "" > < img src = "./img/s8.jpg" alt = "" > < / div > js中代码 var pre = document . getElementById ( "pre" ) ; var next = document . getElementById ( "next" ) ; var imgs = document . querySelectorAll ( ".wraper>img" ) //声明计数器 显示图片的索引值 默认0 var count = 0 ; next . onclick = function ( ) { //每点击一次自增1 ++ count ;

js内置对象-Object

徘徊边缘 提交于 2019-12-15 22:00:45
Javascript-Object 好好学习,天天向下! js中的一些内置方法还是挺好用的,使用它们有时候会节省我们很多时间,还有减少代码量 一、Object.keys(obj) 获取一个对象的key值,但是参数obj必须是 可枚举的 对象,他会返回一个包含对象自身的所有可枚举属性值的 数组 。 let obj = { a : 1 , b : 2 , c : 3 , d : 4 , e : { a : 1 , b : 2 } , abc : 123 } ; let keys = Object . keys ( obj ) ; console . log ( keys ) ; //["a", "b", "c", "d", "e", "abc"] 二、Object.values(obj) 获取一个对象value值,同样参数obj也必须是 可枚举的 对象,他会返回一个包含对象自身的所有可枚举属性值的 数组 。 let values = Object . values ( obj ) ; console . log ( values ) ; //[1, 2, 3, 4, {…}, 123] 注意: 上面两个方法所返回的数组和你去 for...in 的值的顺序是一样的,所以可以放心使用 三、Object.assign(target, …sources) 对对象进行深拷贝( 仅适用于第一层 )

JS闭包

血红的双手。 提交于 2019-12-15 20:07:56
函数与对其状态即 词法环境 ( lexical environment )的引用共同构成 闭包 ( closure )。也就是说,闭包可以让你从内部函数访问外部函数作用域。在JavaScript,函数在每次创建时生成闭包。 词法作用域 请看下面的代码: function init() { var name = "Mozilla"; // name 是一个被 init 创建的局部变量 function displayName() { // displayName() 是内部函数,一个闭包 alert(name); // 使用了父函数中声明的变量 } displayName(); } init(); init() 创建了一个局部变量 name 和一个名为 displayName() 的函数。 displayName() 是定义在 init() 里的内部函数,仅在该函数体内可被获取。请注意, displayName() 内没有自己的局部变量,然而它可以访问到外部函数的变量,所以 displayName() 可以使用父函数 init() 中声明的变量 name 。 运行该代码后发现, displayName() 内的 alert() 语句显示出了 name 变量的值(该变量在父函数中声明)。这个 词法作用域 的例子描述了引擎是如何解析嵌套函数中的变量的。词法(lexical)一词表明

js解释器

江枫思渺然 提交于 2019-12-15 17:44:41
又名js引擎 JavaScript是解释型语言,这就是说它无需编译,直接由JavaScript引擎直接执行。 既然说到了解释型语言,那么我们就来分别以下解释型语言和编译型语言的差别: 编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言的文件(即exe文件),运行时不需要重新编译,直接用编译后的文件(exe文件)就行了。 优点:执行效率高 缺点:跨平台性差 解释型语言:程序不需要编译,程序在运行的过程中才用解释器编译成机器语言,边编译边执行(没有exe文件)。 优点:跨平台性好 缺点:执行效率低 其中程序无需编译,不是说真的不需要编译了,直接执行脚本字符串。而是说不需要在运行之前先编译程序成为exe文件,而是在运行的过程中边运行边执行。 JavaScript解析执行过程 ok,我们回到JavaScript的解析执行过程。 在整体上,JavaScript的解析执行过程分为两个步骤: 编译 运行 其中,编译是在解释器中进行,将代码编译成可执行码。运行是在JavaScript引擎中进行,执行可执行码。 过程如下: 编译过程 编译过程不必多说,我们只要清楚这个过程会将字符串代码编译为可执行码。 执行过程 重点是运行过程,运行又由两个过程组成 预解析 执行 预解析 预解析的工作是 收集变量 分号补全 变量收集 重点注意收集变量这一功能,又名为变量提升,收集的变量有以下三种

为什么学习web前端开发,必须要掌握好JavaScript这门编程语言?

十年热恋 提交于 2019-12-15 16:46:28
相信每一个想要学习前端的人对于前端三剑客html+css+js都不会陌生,这些可以说是一个前端的基本配置,而在前端的世界里,没有什么是JavaScript实现不了的,你真的了解js吗?为什么学习web前端开发要学习JavaScrip,并且必须要掌握,且精通? 关于JS有一句话:凡是可以用JavaScript来写的应用,最终都会用JavaScript,JavaScript可运行在所有主要平台的所有主流浏览器上,也可运行在每一个主流操作系统的服务器端上。现如今我们在为网站写任何一个主要功能的时候都需要有懂能够用JavaScript写前端的开发人员。 而后端代码是用什么编写的则无所谓——不管是Java,PHP,.NET,Node.js还是其他——但是客户端就一定需要一个JavaScript开发人员。事实上,现在很多开发人员依然没有认识到JavaScript有多么强大。 JS实际使用的功能和领域,下面我们就来了解一下。 1.数据可视化 数据可视化是当下大家所推崇的一种互动展示模式,而Java拥有ECharts、Dygraphs.js、D3.js、InfoVis、Springy.js等多种可实现数据可视化效果的框架。 2.移动应用 PhoneGap将WebView带向了移动应用,同时也将JavaScript带向了移动应用。 3.服务端 因为V8的性能将JavaScript带到了一个新的高度

JS中key-value存取

风格不统一 提交于 2019-12-15 14:41:46
获取Key 在代码中,遇到需要单独提取对象的key值时 可使用 Object.keys(object) object是你需要操作的对象 Object.keys()会返回一个存储对象中所有key值的数组 获取当前对象每个key对应的值使用 object[key] 参考: https://www.cnblogs.com/zhichong/p/9930309.html ================================================================= JS中key-value存取 我们来使用实际的代码测试看看结果 var mArr = ['a','b','c']; var mObj = {}; mObj['key1'] = 1; mObj['key2@'] = 2; //遍历mObj for(var pro in mObj){ if(mObj.hasOwnProperty(pro)){ console.log('key is ' + pro +' and value is' + mObj[pro]); } } console.log(Object.keys(mArr));//结果:(3) ["0", "1", "2"] console.log(Object.keys(mObj));//结果:(2) ["key1", "key2@"]

JS中&&和||的理解

狂风中的少年 提交于 2019-12-15 14:12:52
运算符可以从三个不同的层次进行理解。 第一层理解 当操作数都是布尔值时,“&&”对两个值执行布尔与(AND)操作。 复制代码代码如下: x==0 && y==0 // 只有当x和y都是0时,才返回true 关系运算符的优先级比”&&”要高。 第二层理解 ”&&“可以对真值和假值进行布尔与(AND)操作。(假值有false、null、undefined、0、NaN和”“)。在JS中任何希望使用布尔值的地方,表达式和语句都会将其当做真值或假值来对待,因此实际上”&&”并不总是返回true和false。 复制代码代码如下: null && true // =>null: 左操作数为假值,并将其返回,整个表达式为假 true && (5 - 3) // =>2: 左操作数为真,计算右操作数,并将其结果返回 第三层理解 当运算符要返回一个真值或假值时,根据左操作数的值会遇到两种运算情况:运算符首先计算左操作数的值,如果计算结果是假值,那么整个表达式的结果一定也是假值,此时”&&“简单的返回左操作数的值,而并不会对右操作数进行计算。如果左操作数是真值,”&&“将计算右操作数的值并将其返回作为整个表达式的计算结果。 复制代码代码如下: var o = {x:1}; var p = null; o && o.x; // =>1 o是真值,返回o.x的值 p && p.y; // =>null:

使用js作html密码弹窗

£可爱£侵袭症+ 提交于 2019-12-15 11:49:49
1、编写js弹窗 vi index.html < ! DOCTYPE html > < html > < head > < meta charset = "UTF-8" > < title > < /title > < /head > < body > < /body > < script type = "text/javascript" > var a = Number ( prompt ( "goajun" )) ; switch ( a ) { case 12345678: document.write ( '<a href="aefewfawewafw67869870.html">W3School</a>' ) #可以编写html语言 break ; default: function click ( ) { if ( event.button == 2 ) { alert ( '䷾M罃½潜~K﻾A' ) ; } } document.onmousedown = click #防止查看网页代码 break ; } < /script > < /html > 2、结果 来源: CSDN 作者: a13568hki 链接: https://blog.csdn.net/a13568hki/article/details/103482545