![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
javascript
文章平均质量分 64
A__loser
为人应当锐意进取,不为往事所羁
展开
-
JS的数值转换
在JS里有3个函数可以将非数值转换为数值 Number() 转换规则 如果是Boolean值,true和false将分别转换为1和0; 如果是数字值,只是简单的传入和返回; 如果是null值,返回0; 如果是undefined,返回NaN; 如果是字符串,则遵循以下规则 如果字符串中只包含数字,则将其装换为十进制数值; 如果字符串中包含有效的浮点个事,则将其装换为相翻译 2017-04-07 18:57:45 · 951 阅读 · 0 评论 -
JS unload事件(UI)
与load事件对应的是unload事件,这个事件在文档被完全卸载之后触发。只要用户从一个页面切换到另一个页面就会发生unload事件。而利用这个事件最多的情况就是清除引用,避免内存泄漏。 指定unload事件处理程序的两种方式: 使用JavaScript:EventUtil.addHandler(window,"unload",function(){ alert("Unload");}原创 2017-05-05 12:59:32 · 1791 阅读 · 0 评论 -
JS resizes事件(UI)
当浏览器窗口被调整到一个新的高度或宽度是,就会触发resize事件。这个事件在window(窗口)上面触发,因此可以通过JavaScript或者<body>元素中的onresize特性来指定事件处理程序.当然我们还是推荐使用JavaScript方式来指定相应的时间处理程序.EventUtil.addHandler(window,"resize",function(event){ alert(原创 2017-05-05 19:26:09 · 5401 阅读 · 0 评论 -
JS scroll事件(UI)
虽然 scroll 事件是在 window 对象上发生的,但它实际表示的则是页面中相应元素的变化。在混 杂模式下,可以通过 <body>元素的 scrollLeft 和 scrollTop 来监控到这一变化;而在标准模式下, 除 Safari 之外的所有浏览器都会通过 <html>元素来反映这一变化(Safari 仍然基于 <body> 跟踪滚动位 置),如下面的例子所示:EventUtil.原创 2017-05-05 20:23:29 · 970 阅读 · 0 评论 -
JS 焦点事件
焦点事件会在页面元素获得或者失去焦点时触发。利用这些事件并与document.hasFocus()方法及document.activeElememt属性配合,可以知晓用户在页面上的行踪。 六个焦点事件 blur:在元素失去焦点时触发。这个事件不会冒泡。所有浏览器都支持他。 DOMFocusIn:在元素获得焦点时触发。这个事件与HTML事件focus等价,但它冒泡。只有Opera支持这个事原创 2017-05-05 20:47:37 · 1012 阅读 · 0 评论 -
JS实现验证码(简单版)
首先在写代码之前我们来说一下验证码的由来:老网民们大概都记得,刚开始上网的时候,是不存在验证码(capcha)这么一种东西的。这造成的结果是,垃圾评论和垃圾邮件可以轻松通过任何一个网站的注册程序,通过各种方式轰炸人民群众的眼球。最先想要解决这一问题的是雅虎——作为互联网时代早期最重要的免费邮件提供商,他们一方面要解决用户们每天遇到的数以百计的垃圾邮件轰炸,另一方面,他们自己的免费邮箱,恰恰又是垃圾邮原创 2017-04-25 14:15:02 · 5119 阅读 · 0 评论 -
牛客网前端技能大挑战(dom节点查找)
题目描述 查找两个节点的最近的一个共同父节点,可以包括节点自身 输入描述: oNode1 和 oNode2 在同一文档中,且不会为相同的节点 在解决这道题之前我们需要先了解一些关于JS的相关小知识,首先我们需要了解contains()这个方法 IE中的contains方法可以判断A元素是否包含B元素,如果包含则返回true,否则返回false,在开发中会在事件代理处理上面用到。W3C的方法原创 2017-04-25 15:07:31 · 762 阅读 · 0 评论 -
JS鼠标与滚轮事件
鼠标事件是 Web 开发中最常用的一类事件,毕竟鼠标还是最主要的定位设备。DOM3 级事件中定义了 9 个鼠标事件. click :在用户单击主鼠标按钮(一般是左边的按钮)或者按下回车键时触发。这一点对确保易访问性很重要,意味着 onclick 事件处理程序既可以通过键盘也可以通过鼠标执行。 dblclick :在用户双击主鼠标按钮(一般是左边的按钮)时触发。从技术上说,这个事件并不是 D原创 2017-05-07 22:00:29 · 909 阅读 · 0 评论 -
键盘与文本事件
有 3 个键盘事件: keydown :当用户按下键盘上的任意键时触发,而且如果按住不放的话,会重复触发此事件。 keypress :当用户按下键盘上的字符键时触发,而且如果按住不放的话,会重复触发此事件。按下 Esc 键也会触发这个事件。Safari 3.1 之前的版本也会在用户按下非字符键时触发 keypress事件。 keyup :当用户释放键盘上的键时触发虽然所有元素都支持原创 2017-05-07 22:14:59 · 313 阅读 · 0 评论 -
复合事件
复合事件(composition event)是 DOM3 级事件中新添加的一类事件,用于处理 IME 的输入序列。IME(Input Method Editor,输入法编辑器)可以让用户输入在物理键盘上找不到的字符。例如,使用拉丁文键盘的用户通过 IME 照样能输入日文字符。IME 通常需要同时按住多个键,但最终只输入一个字符。复合事件就是针对检测和处理这种输入而设计的。有以下三种复合事件。原创 2017-05-07 22:19:59 · 2049 阅读 · 0 评论 -
JS变动事件
DOM2 级的变动(mutation)事件能在 DOM中的某一部分发生变化时给出提示。变动事件是为 XML或 HTML DOM设计的,并不特定于某种语言。DOM2 级定义了如下变动事件。 DOMSubtreeModified :在 DOM 结构中发生任何变化时触发。这个事件在其他任何事件触发后都会触发 DOMNodeInserted :在一个节点作为子节点被插入到另一个节点中时触发。原创 2017-05-07 22:33:02 · 801 阅读 · 0 评论 -
JS HTML5事件
1.contextmenu事件 windows95在PC中引入了上下文菜单的概念,即通过单击鼠标右键可以调出上下文菜单。不久,这个概念也被引入web领域。为了实现上下文菜单,开发人员面临的主要问题是如何确定应该显示上下文菜单,以及如何屏蔽与该操作关联的默认上下文菜单。为解决这个问题,就出现了 contextmenu 这个事件,用以表示何时应该显示上下文菜单,以便开发人员取消默认的上下文菜单原创 2017-05-08 22:43:04 · 448 阅读 · 0 评论 -
JS 设备事件
智能手机和平板电脑的普及,为用户与浏览器交互引入了一种新的方式,而一类新事件也应运而生。设备事件(device event)可以让开发人员确定用户在怎样使用设备。W3C 从 2011年开始着手制定一份关于设备事件的新草案(http://dev.w3.org/geo/api/spec-source-orientation.html),以涵盖不断增长的设备类型并为它们定义相关的事件。 1. orie原创 2017-05-09 10:50:40 · 694 阅读 · 0 评论 -
JS 触摸与手势事件
触摸事件 包含 iOS 2.0 软件的 iPhone 3G 发布时,也包含了一个新版本的 Safari 浏览器。这款新的移动 Safari提供了一些与触摸(touch)操作相关的新事件。后来,Android 上的浏览器也实现了相同的事件。触摸事件会在用户手指放在屏幕上面时、在屏幕上滑动时或从屏幕上移开时触发。具体来说,有以下几个触摸事件。 touchstart :当手指触摸屏幕时触发;即使已经有原创 2017-05-09 11:14:26 · 360 阅读 · 0 评论 -
JS 内存和性能
由于事件处理程序可以为现代 Web 应用程序提供交互能力,因此许多开发人员会不分青红皂白地向页面中添加大量的处理程序。在创建 GUI 的语言(如 C#)中,为 GUI 中的每个按钮添加一个 onclick事件处理程序是司空见惯的事,而且这样做也不会导致什么问题。可是在 JavaScript 中,添加到页面上的事件处理程序数量将直接关系到页面的整体运行性能。导致这一问题的原因是多方面的。首先,每个函数原创 2017-05-09 13:07:07 · 521 阅读 · 0 评论 -
JS事件类型
web浏览器中可能发生的时间有很多类型。如前所述,不同的事件类型具有不同的信息,而“DOM3级事件”规定了以下几类事件 UI(User interface,用户界面)事件,当用户与页面上的元素交互时触发; 焦点事件,当元素获得或失去焦点时触发; 鼠标事件,当用户通过鼠标在页面上执行操作是触发; 滚轮事件,当用户使用鼠标滚轮(或者类似设备)时触发; 文本事件,当在文档中输入文本时触发; 键原创 2017-05-04 19:33:35 · 366 阅读 · 0 评论 -
JS load事件(UI)
当页面完全加载后(包括所有图像、JavaScript文件、CSS文件等外部资源),就会触发window上面的load事件。 有两种定义onload事件处理程序的方式,第一种方式是使用如下的JavaScript代码: EventUtil.addHandler(window,"load",function(event){ alert("loaded!"); });//关于EventUtil这个对象原创 2017-05-04 20:57:23 · 14362 阅读 · 0 评论 -
JS Object类型
创建: var o = new Object(); Object每个实例都有线面的属性和方法 constructor–保存着用于穿件当前对象的函数。对于当前的例子而言,构造函数(constructor)就是Object(); hasOwnproperty(propertyName)–用于检查给定的属性在当前对象实例中(而不是在实例原型中)是否存在。其中,作为参数的属翻译 2017-04-07 19:54:21 · 349 阅读 · 0 评论 -
JS类型检测(typeof和instanceof)
要检测一个变量是不是基本的数据类型,typeof是最佳的工具。typeof操作符是确定一个变量是字符串、数值、布尔值、还是undefined的最佳工具。如果一个变量是一个对象或者null,那么typeof就会返回“object”; var s = “Bob”; var b = true ; var i = 22; var u; var n =null; var o = new Objec翻译 2017-04-07 21:12:59 · 374 阅读 · 0 评论 -
JS关于Object定义的两种方式
第一种使用new操作符后跟object构造函数 var person = new object(); person.name = ” Bob”; person.age = 29; 另一种使用字面量表示法 var person = { name : “Nicholas”, age : 29 }; 属性名也可以使用字符串 var person = { “n翻译 2017-04-07 21:48:35 · 620 阅读 · 0 评论 -
JSArray类型
ECMAScript中的数组和其他语言的数组有相当大的区别,虽然ECMAScript的数组与其他语言的数组一样都是数据的有序列表,但是与其他语言不同的是ECMAScript的数组每一项存的可以是不同类型的数据。也就是说数组的第一个位置可以是字符串,第二个位置可以是数值。并且数组大小可以动态调整。 创建数组的方式有两种: 第一种是使用Array构造函数 var colors = new翻译 2017-04-08 14:20:42 · 304 阅读 · 0 评论 -
关于Js函数对象的apply()和call()方法
每个函数都包含两个非继承而来的方法,call()和apply().这两个方法都是在特定的作用域中调用函数,实际等于设置函数体内this对象的值。 首先apply()方法接受两个参数,一个是其中运行函数的作用域,另一个参数是数组,可以是Array的实例也可以是arguments对象。 例如: function sum(num1,num2) { retuen num1+原创 2017-04-08 15:54:29 · 501 阅读 · 0 评论 -
JS的两个内置对象
ECMAScript定义了两个内置对象,Global和Math. Global对象在某种意义上说是作为一个终极的“兜底儿对象”来定义的。换句话说,不属于任何其他对象的属性和方法,最终都是他的方法和属性。事实上没有全局变量和属性,所有在全局作用域中定义的属性和函数,都是global对象的属性。 Math对象是作为保存数学公式和信息的对象。翻译 2017-04-08 16:36:46 · 340 阅读 · 0 评论 -
JS创建对象
Js因为没有类的概念,所以创建对象时就会有许多的问题,下面列举几种创建对象的模式. 现在前面做一个列表 一 工厂模式 二 构造函数模式 三 原型模式 四 组合使用构造函数模式和原型模式 五 动态原型模式 六 寄生构造模式 七 稳妥构造函数模式 工厂模式 用函数来封装一特定的接口创建对象的细节function createPers翻译 2017-04-08 20:41:10 · 227 阅读 · 0 评论 -
关于各种浏览器的内核
作为一个前端的开发人员,了解各种浏览器的内核是必不可少的,所以下面我就来说一下各种浏览器的各种内核.一、Trident内核代表产品Internet Explorer,又称其为IE内核。Trident(又称为MSHTML),是微软开发的一种排版引擎。使用Trident渲染引擎的浏览器包括:IE、傲游、世界之窗浏览器、Avant、腾讯TT、Netscape 8、NetCaptor、Sleipnir、G原创 2017-04-10 21:29:37 · 1024 阅读 · 0 评论 -
牛客网前端大挑战修改this指向
题目描述 封装函数 f,使 f 的 this 指向指定的对象 输入例子:bindThis(function(a, b){return this.test + a + b}, {test: 1})(2, 3)输出例子:6 没什么好说的首先我们第一个返回值应该是一个函数,再然后在调用f是应该修改f的作用域.function bindThis(f, oTarget) { return fun原创 2017-04-18 15:30:52 · 390 阅读 · 0 评论 -
牛客前端技能挑战
题目描述 获取 url 中的参数 1. 指定参数名称,返回该参数的值 或者 空字符串 2. 不指定参数名称,返回全部的参数对象 或者 {} 3. 如果存在多个同名参数,则返回数组 输入例子:getUrlParam(‘http://www.nowcoder.com?key=1&key=2&key=3&test=4#hehe‘, ‘key’)输出例子:[1, 2, 3]function get原创 2017-04-18 20:57:03 · 578 阅读 · 0 评论 -
window.open()实现打开窗口
使用window.open()方法既可以导航到一个特定的URL,也可以打开一个新窗口。这个方法接受四个参数:要加载的URL、窗口目标、一个特性字符以及一个表示新页面是否取代浏览器历史记录中当前加载页面的布尔值。通常值传递第一个参数,最后一个参数只在不打开新窗口的情况下使用。 如果window.open()传递了第二个参数,而且该参数是已有的窗口或框架中加载第一个参数指定的URL。 win原创 2017-04-15 15:52:10 · 1383 阅读 · 0 评论 -
JS事件流(事件冒泡和事件捕获)
事件流是描述从页面接收事件的顺序。但是有意思的是,IE和Netscape开发团队提出了差不多完全相反的事件流概念。IE的事件流是事件冒泡流,而Netspace Communicator的事件流是事件捕获流。 事件冒泡 IE的事件流叫做事件冒泡(event bubbling),即事件开始时由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后,逐级下农商传播到较为不具体的节点(文档)。以下面的原创 2017-05-03 13:11:38 · 409 阅读 · 0 评论 -
事件处理程序
事件就是用户或浏览器自身执行的某种动作。诸如clik,load和mouseover,都是事件使得名字。而响应某个事件的函数就是事件处理程序。(或事件侦听器)。事件处理程序的名字以“on”开头,因此click事件的事件处理程序就是onclick,load事件的事件处理程序就是onload。 HTML事件处理程序 某个元素支持的每种事件,都可以使用一个与相应事件处理程序同名的 HTML 特性原创 2017-05-03 22:39:13 · 389 阅读 · 0 评论 -
JS事件对象
在触发 DOM 上的某个事件时,会产生一个事件对象 event ,这个对象中包含着所有与事件有关的信息。包括导致事件的元素、事件的类型以及其他与特定事件相关的信息。例如,鼠标操作导致的事件对象中,会包含鼠标位置的信息,而键盘操作导致的事件对象中,会包含与按下的键有关的信息。所有浏览器都支持 event 对象,但支持方式不同。 DOM中的事件对象 兼容DOM的浏览器会将一个event对象传入到事件原创 2017-05-04 17:49:10 · 430 阅读 · 0 评论 -
JS 模拟事件
DOM中的事件模拟 可以在 document 对象上使用 createEvent() 方法创建 event 对象。这个方法接收一个参数,即表示要创建的事件类型的字符串。在 DOM2 级中,所有这些字符串都使用英文复数形式,而在 DOM3级中都变成了单数。这个字符串可以使下列几个字符串之一. UIEvents :一般化的 UI 事件。鼠标事件和键盘事件都继承自 UI 事件。DOM3 级中是 UI原创 2017-06-14 19:16:48 · 284 阅读 · 0 评论