js代码

js中SetInterval与setTimeout用法

孤街醉人 提交于 2020-01-08 04:33:32
JS里设定延时: 使用SetInterval和设定延时函数setTimeout 很类似。setTimeout 运用在延迟一段时间,再进行某项操作。 setTimeout("function",time) 设置一个超时对象 setInterval("function",time) 设置一个超时对象 SetInterval为自动重复,setTimeout不会重复。 clearTimeout(对象) 清除已设置的setTimeout对象 clearInterval(对象) 清除已设置的setInterval对象 使用定时器实现JavaScript的延期执行或重复执行 window对象提供了两个方法来实现定时器的效果,分别是window.setTimeout()和window.setInterval。其中前者可以使一段代码在指定时间后运行;而后者则可以使一段代码每过指定时间就运行一次。它们的原型如下: window.setTimeout(expression,milliseconds); window.setInterval(expression,milliseconds); 其中,expression可以是用引号括起来的一段代码,也可以是一个函数名,到了指定的时间,系统便会自动调用该函数,当使用函数名作为调用句柄时,不能带有任何参数;而使用字符串时,则可以在其中写入要传递的参数

Js apply()使用详解

て烟熏妆下的殇ゞ 提交于 2020-01-08 03:23:56
Js apply方法详解 我在一开始看到javascript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了,在这里我做如下笔记,希望和大家分享.. 如有什么不对的或者说法不明确的地方希望读者多多提一些意见,以便共同提高.. 主要我是要解决一下几个问题: 1.apply和call的区别在哪里 2.什么情况下用apply,什么情况下用call 3.apply的其他巧妙用法(一般在什么情况下可以使用apply) 我首先从网上查到关于apply和call的定义,然后用示例来解释这两个方法的意思和如何去用. apply:方法能劫持另外一个对象的方法,继承另外一个对象的属性. Function.apply(obj,args)方法能接收两个参数 obj:这个对象将代替Function类里 this对象 args:这个是数组,它将作为参数传给Function(args-->arguments) call:和apply的意思一样,只不过是参数列表不一样. Function.call(obj,[param1[,param2[,…[,paramN]]]]) obj:这个对象将代替Function类里 this对象 params:这个是一个参数列表 1.apply示例: <script type= "text

js之深度克隆、简易克隆

旧街凉风 提交于 2020-01-08 01:50:54
一、js中的对象   谈到对象的克隆,必定要说一下对象的概念。   js中的数据类型分为两大类:原始类型和对象类型。     (1)原始类型包括:数值、字符串、布尔值、null、undefined(后两个是特殊的原始值,这里不做详细的说明,我的上一篇博客有谈到过一些)     (2)对象类型包括:对象即是属性的集合,当然这里又两个特殊的对象----函数(js中的一等对象)、数组(键值的有序集合)。   好了既然对象分为这两类,这两种类型在复制克隆的时候是有很大区别的。原始类型存储的是对象的实际数据,而对象类型存储的是对象的引用地址(对象的实际内容单独存放,为了减少数据开销通常存放在内存中)。ps:说到这里,大家要知道,对象的原型也是引用对象,它把原型的方法和属性放在内存当中,通过原型链的方式来指向这个内存地址。 二、克隆的概念   浅度克隆:原始类型为值传递,对象类型仍为引用传递。   深度克隆:所有元素或属性均完全复制,与原对象完全脱离,也就是说所有对于新对象的修改都不会反映到原对象中。 三、浅克隆的表现 1,原始类型   看下面一段代码:    //数值克隆的表现 var a="1"; var b=a; b="2"; console.log(a);// "1" console.log(b);// "2" //字符串克隆的表现 var c="1"; var d=c; d="2";

js的执行上下文

ぃ、小莉子 提交于 2020-01-08 01:00:58
js的运行环境有三种: 1. 全局环境 2. 函数内环境 3. eval环境 1. EC Execute Context: 执行上下文。 1)全局执行上下文 js引擎遇到可执行的js代码,默认创建一个全局执行上下文。 2)函数执行上下文 js引擎遇到函数调用,会立即创建一个函数执行上下文。 执行上下文周期: 执行上下文周期分为两个阶段: 创建阶段 创建阶段的任务有三个: 1. 生成变量对象(VO) 2. 建立作用域链Scope 3. 声明this指向 this在创建阶段只是声明,在执行阶段根据函数运行时所在的执行上下文确定this指向的上下文的变量对象VO。 执行阶段 当函数执行内部代码时,进入执行阶段。 2. VO / AO / GO Variable Object: 变量对象,创建阶段的变量对象。 Active Object: 激活后的变量对象,即执行上下文执行阶段的VO。 Global Object: 全局对象,全局执行上下文对应的变量对象(AO/VO)。 每个执行上下文对象都有一个变量对象的属性,它用于存放执行上下文周期的创建阶段的形式参数、函数声明和变量声明。不能被用户直接访问。 在执行上下文周期的执行阶段,VO中对应的属性被赋值,变为AO,AO中内容是变量查找的内容。 变量对象的创建顺序如下: 1. 创建arguments对象,初始化形式参数 function a(x

Js apply方法详解

旧街凉风 提交于 2020-01-08 00:15:08
我在一开始看到javascript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了,在这里我做如下笔记,希望和大家分享.. 如有什么不对的或者说法不明确的地方希望读者多多提一些意见,以便共同提高.. 主要我是要解决一下几个问题: 1. apply和call的区别在哪里 2. 什么情况下用apply,什么情况下用call 3. apply的其他巧妙用法(一般在什么情况下可以使用apply) 我首先从网上查到关于apply和call的定义,然后用示例来解释这两个方法的意思和如何去用. apply:方法能劫持另外一个对象的方法,继承另外一个对象的属性. Function.apply(obj,args)方法能接收两个参数 obj:这个对象将代替Function类里this对象 args:这个是数组,它将作为参数传给Function(args-->arguments) call:和apply的意思一样,只不过是参数列表不一样. Function.call(obj,[param1[,param2[,…[,paramN]]]]) obj:这个对象将代替Function类里this对象 params:这个是一个参数列表 1. apply示例: <script type="text/javascript"> /

JS组件系列——基于Bootstrap Ace模板的菜单和Tab页效果分享(你值得拥有)

你说的曾经没有我的故事 提交于 2020-01-07 18:13:06
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 原文地址: JS组件系列——基于Bootstrap Ace模板的菜单和Tab页效果分享(你值得拥有) 前言:最近园子里多了许多谈语言、谈环境、谈逼格(格局)的文章,看看笑笑过后,殊不知其实都是然并卵。提升自己的技术才是王道。之前博主分享过多篇bootstrap组件的文章,引起了很多园友的关注和支持,看样子这种风格还是受到很多园友青睐的。本着不辜负园友们的支持的原则,应群友们的要求,今天来分享下项目中使用Ace模板的菜单样式和基于iframe的Tab页效果。 Ace模板地址: http://code.google.com/p/ace-engine/wiki/AceTemplate (有时会打不开) Ace英文官网: http://wrapbootstrap.com/preview/WB0B30DGR Ace模板功能介绍地址: http://www.cnblogs.com/txw1958/p/Ace-Responsive-Admin-Template.html 一、效果展示 折腾了好久,终于将菜单样式和Tab页的效果从项目中抽出来了,园友们且看且珍惜哈~~ 1、初始加载出来的效果 2、展开菜单(支持多级展开,后面代码介绍) 3、点击子菜单,以Tab页的形式打开对应的页面 4、支持菜单折叠 5

JS高级---继承

馋奶兔 提交于 2020-01-07 17:17:16
继承 面向对象编程思想: 根据需求, 分析对象, 找到对象有什么特征和行为, 通过代码的方式来实现需求, 要想实现这个需求,就要创建对象 ,要想创建对象, 就应该显示有构造函数, 然后通过构造函数来创建对象, 通过对象调用属性和方法来实现相应的功能及需求, 即可 需注意 首先,JS不是一门面向对象的语言, JS是一门基于对象的语言, 那么为什么学习js还要学习面向对象, 因为面向对象的思想适合于人的想法, 编程起来会更加的方便,及后期的维护.... 面向对象的编程语言中有类(class)的概念(也是一种特殊的数据类型), 但是JS不是面向对象的语言, 所以, JS中没有类(class), 但是JS可以模拟面向对象的思想编程, JS中会通过构造函数来模拟类的概念(class) 面向对象的特性:封装,继承,多态 封装: 就是包装 一个值存储在一个变量中--封装 一坨重复代码放在一个函数中--封装 一系列的属性放在一个对象中--封装 一些功能类似的函数(方法)放在一个对象中--封装 好多相类似的对象放在一个js文件中---封装 继承: 首先继承是一种关系,类(class)与类之间的关系, JS中没有类, 但是可以通过构造函数模拟类, 然后通过原型来实现继承 继承也是为了数据共享,js中的继承也是为了实现数据共享 原型作用之一:数据共享,节省内存空间 原型作用之二:为了实现继承

js基础

为君一笑 提交于 2020-01-07 16:05:26
1. JS的数据类型 2. JS有哪些内置对象 3. 宿主对象和原生对象的区别 4. null、undefined及未声明变量之间的区别。如何区分? 5. ==和===的区别 6. JS隐式转换及应用场景 7."Attribute"和"Property"的区别 8. NaN是什么?如何判断是否是NaN类型 9. 如何判断两个对象相等 10. 什么是'user strict',使用它有什么优缺点? 优点: 缺点: 11. call,apply和bind的作用是什么?两者区别是什么? 12. 请说明Function.prototype.bind的用法 摘自MDN: 13. 如何判断是否为空数组 14. 数组方法 数组乱序: 数组拆解: 15. push、pop、shift、unshift功能及返回值 16. .forEach和.map()循环的主要区别,使用场景举例 17. JS执行对象查找时,永远不会去查找原型的函数是哪个? 18. 如何将arguments转为数组 19. 对象的遍历方法 20. 数组的遍历方法 21. 匿名函数的典型应用场景 22. IIFE(立即执行函数)的用法 23. document的load事件和DOMContentLoaded事件之间的区别 24. 数据类型判断方式有几种 25. DOM操作(增删改查) 26. 异步加载JS 的方式有哪些 27.

js 小白笔记

血红的双手。 提交于 2020-01-07 13:50:31
js代码要写在body代码的下面===>因为代码从上向下执行 若body页面里面的代码在下面,js代码在上面 在执行的时候js中的代码会用到body中的代码,就会报错 若将js中的代码放到 window.οnlοad=function () { } 页面加载事件onload 就是最后执行这个方法里面的代码 只要页面加载完毕,这个事件就会触发-----页面中所有的内容,标签,属性,文本,包括外部引入js文件 // 函 数 //通过函数 //求两个数字的和 function consoleSum() {//函数定义 var num1 = 100; var num2 = 200; var sum = num1 + num2; console.log(sum); } //调用 consoleSum(); //函数返回值 function getsum(x,y){ var sum = x + y; return sum; } //getsum(10,20) 函数调用 var result = getsum(10,20);//函数返回值定义变量接受 console.log(result); //若函数中没有return或return后面没有任何内容 调用的时候接受了 结果就是undefined //命名函数 function f1(){ console.log(aa); } f1() /

前端工程——基础篇

狂风中的少年 提交于 2020-01-07 08:31:11
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> # 前端工程——基础篇 > 喂喂喂,那个切图的,把页面写好就发给研发工程师套模板吧。 你好,切图仔。 不知道你的团队如何定义前端开发,据我所知,时至今日仍然有很多团队会把前端开发归类为产品或者设计岗位,虽然身份之争多少有些无谓,但我对这种偏见还是心存芥蒂,酝酿了许久,决定写一个系列的文章,试着从工程的角度系统的介绍一下我对前端,尤其是Web前端的理解。 只要我们还把自己的工作看作为一项软件开发活动,那么我相信读过下面的内容你也一定会有所共鸣。 ## 前端,是一种GUI软件 现如今前端可谓包罗万象,产品形态五花八门,涉猎极广,什么高大上的基础库/框架,拽炫酷的宣传页面,还有屌炸天的小游戏……不过这些一两个文件的小项目并非是前端技术的主要应用场景,更具商业价值的则是复杂的Web应用,它们功能完善,界面繁多,为用户提供了完整的产品体验,可能是新闻聚合网站,可能是在线购物平台,可能是社交网络,可能是金融信贷应用,可能是音乐互动社区,也可能是视频上传与分享平台…… > 从本质上讲,所有Web应用都是一种运行在网页浏览器中的软件,这些软件的图形用户界面(Graphical User Interface,简称GUI)即为前端。 如此复杂的Web应用,动辄几十上百人共同开发维护,其前端界面通常也颇具规模