事件冒泡 IE的事件流叫做事件冒泡。顾名思义当事件发生后,事件就开始从里向外传播,查看下方代码: <html lang="en"><head><meta charset="UTF-8"><title>Document</title></head><body><div id="myDiv"></div></body> </html>如果点击页面中的 <div> 元素,那么这个 chick 事件就会按照如下顺序传播:click 事件 在 直系DOM 树的每一级节点都会发生(自下而上),直到 document 对象。 事件委托 又称事件代理。对“事件处理程序过...
0x01 前言 最近看到一篇原型链污染的文章,自己在这里总结一下 0x02 javascript 原型链 js在ECS6之前没有类的概念,之前的类都是用funtion来声明的。如下可以看到b在实例化为test对象以后,就可以输出test类中的属性a了。这是为什么呢? 原因在于js中的一个重要的概念:继承。 而继承的整个过程就称为该类的原型链。 在javascript中,每个对象的都有一个指向他的原型(prototype)的内部链接,这个原型对象又有它自己的原型,直到nu...
好程序员web前端教程分享前端javascript练习题之闭包案例,编写一个求和函数sum,使输入sum(2)(3)或输入sum(2,3),输出结果相同 可以传入多个参数 function sum(){ var num = arguments[0]; if(arguments.length==1){ return function(sec){ return num+sec; } }else{ var num = 0; for(var i = 0;i<arguments.length;i++){ num = num + arguments[i]; } return...
1. 伪数组arguments arguments代表的是实参。有个讲究的地方是:arguments只在函数中使用。 1.1 返回参数个数 返回函数实参的个数:arguments.length 例子:fn(2,4); fn(2,4,6); fn(2,4,6,8);function fn(a,b,c) {console.log(arguments);console.log(fn.length); //获取形参的个数console.log(arguments.length); //获取实参的个数console.log("----------------"); }结果: 1.2 只能修改元素,不能修改长短 之所以说...
1. JavaScript概述 1.1 JavaScript历史背景介绍布兰登 ? 艾奇(Brendan Eich,1961年~),1995年在网景公司,发明的JavaScript。 一开始JavaScript叫做LiveScript,但是由于当时Java这个语言特别火,所以为了傍大牌,就改名为JavaScript。如同“北大”和“北大青鸟”的关系。“北大青鸟”就是傍“北大”大牌。 同时期还有其他的网页语言,比如VBScript、JScript等等,但是后来都被JavaScript打败了,所以现在的浏览器中,只运行一...
好程序员web前端教程分享js中的模块化一:我们知道最常见的模块化方案有CommonJS、AMD、CMD、ES6,AMD规范一般用于浏览器,异步的,因为模块加载是异步的,js解释是同步的,所以有时候导致依赖还没加载完毕,同步的代码运行结束;CommonJS规范一般用于服务端,同步的,因为在服务器端所有文件都存储在本地的硬盘上,传输速率快而且稳定。 1.script标签引入 最开始的时候,多个script标签引入js文件。但是,这种弊端也很明显,很多个...
平时前端开发工作时,经常会需要对字符串进行截断,比如新闻标题,需要把超出可视区域后需要进行截断,如下图:但是这个方式有一个弊端,尤其是响应式的页面,截取字数无法精确控制,比如pc端可视区域可以显示150个字符,但是手机端屏幕最多只能显示20个字符,所以通过后端来控制字符数是非常烂的解决方案,最好的解决办法是通过前端方式来截断字符串,下面分别用javascript和css的方式来实现。 先看一下html部分 为什么要制作高端...
好程序员web前端教程将会为大家持续分享前端javascript练习题系列。Math 对象 1.编写一个函数,获得一个十六进制的随机颜色的字符串(例如:#20CD4F)方法:function f2(){var str="0123456789abcdef";var color="#";for(var i=0;i<6;i++){var num=Math.floor(Math.random()*str.length);color=color+str[num];}console.log(color);}f2();date对象数码时钟思路分析:将时分秒的图片,按照一定规则命名,方便后续根据时间设置图片路径...
一、JavaScript介绍1、一个完整的 JavaScript 实现是由以下 3 个不同部分组成的:(1)核心(ECMAScript)(2)文档对象模型(DOM) Document object model (整合js,css,html)(3)浏览器对象模型(BOM) Broswer object model(整合js和浏览器)2、特点JavaScript 是脚本语言JavaScript 是一种轻量级的编程语言。JavaScript 是可插入 HTML 页面的编程代码。JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。JavaScript ...
1. 题目描述 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。 为简单起见,标点符号和普通字母一样处理。例如输入字符串”I am a student.“,则输出”student. a am I”。 2. 解题思路 进行 2 次不同层次的翻转。第一个层次的翻转,是对整体字符串进行翻转。第二个层次的翻转,是对翻转后字符串中的单词进行翻转。 3. 代码 function ReverseSentence(str) {let reverseStr = str.split('').reverse().join('')...
1. 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为 1。 2. 解题思路 最简单的肯定是从头到尾遍历,复杂度是 O(N)。这种方法没有利用“旋转数组”的特性。 借助二分查找的思想,时间复杂度可以降低到 O(log(N))。 可以通过以下方法确定最小值元素的位置,然后移动指针,...
1. 题目描述 统计一个数字在排序数组中出现的次数。 2. 解题思路 题目说是排序数组,所以可以使用“二分查找”的思想。 一种思路是查找到指定数字,然后向前向后遍历,复杂度是 O(N)。 另一种是不需要遍历所有的数字,只需要找到数字在数组中的左右边界即可,做差即可得到出现次数。 3. 代码 /*** 寻找指定数字的左 / 右边界** @param {Array} nums* @param {*} target* @param {String} mode left | right 寻找左 | 右边界*/ func...
1,不要着急看一些复杂网页效果的代码,这样除了打击你自信心,什么也学不到。没达到一定的武功水平,割了小JJ也学不会葵花宝典的。 2,别急着加技术交流QQ群,加牛人QQ。如果你找张三丰交流武功,你上去第一句问“丰哥,where is 丹田?”,你会被他一掌劈死的。 3,看网上什么多少天精通JS,啥啥啥从入门到精通,这种教程直接跳过吧,太多的事实证明,以一种浮躁的心态去做任何事都会以失败而告终。 推荐几本好书 “你丫吹了半天...
好程序员web前端学习路线分享web测试之Js中的函数,在JS中,一般使用函数其实就是为了封装某些操作,或者把编写的程序进行模块化的操作。 一.函数的声明方式 1.普通的函数声明 function box(num1, num2) { return num1+ num2; } 2.使用变量初始化函数 var box= function(num1, num2) { return num1 + num2; }; 3.使用Function构造函数 var box= new Function(num1, num2 ,return num1 + num2); ...
JavaScript 是客户端和服务器端的脚本语言,可以插入HTML 页函中, 并且是目前较热门的Web 开发语言。同时, JavaScript 也是面向对象的编程语言。JavaScript 的阻塞特性是所有浏览器在下载JavaScript 代码的时候, 会阻止其他一切活动,比如其他资源的下载, 内容的呈现等,直到JavaScript 代码下载、解析、执行完毕后才开始继续并行下载其他资源并渲染内容。web前端开发学习JavaScript和css阻塞。 为了提高用户体验, 新一代浏览...