JavaScript
paullinjie
这个作者很懒,什么都没留下…
展开
-
Javascript闭包——懂不懂由你,反正我是懂了
越来越觉得国内没有教书育人的氛围,为了弄懂JS的闭包,我使出了我英语四级吃奶的劲去google上搜寻着有关闭包的解释,当我看到stackoverflow上这一篇解答,我脑中就出现了一句话:就是这货没跑了! 不才译文见下,见笑了。 Peter Mortensen问:就像老Albert所说的,“如果你不能向一个六岁的孩子解释清楚,那么其实你自己根本就没弄懂。”好吧,我试着向一个27转载 2016-09-21 10:52:29 · 230 阅读 · 0 评论 -
深入理解javascript原型和闭包(10)——this
接着上一节讲的话,应该轮到“执行上下文栈”了,但是这里不得不插入一节,把this说一下。因为this很重要,js的面试题如果不出几个与this有关的,那出题者都不合格。 其实,this的取值,分四种情况。我们来挨个看一下。在此再强调一遍一个非常重要的知识点:在函数中this到底取何值,是在函数真正被调用执行的时候确定的,函数定义的时候确定不了。因为this的取值是执行上下文环境的一部分转载 2016-10-19 11:28:55 · 231 阅读 · 0 评论 -
js中typeOf用法
JS中的变量是松散类型(即弱类型)的,可以用来保存任何类型的数据。typeof 可以用来检测给定变量的数据类型,可能的返回值:1. 'undefined' --- 这个值未定义;2. 'boolean' --- 这个值是布尔值;3. 'string' --- 这个值是字符串;4. 'number' --- 这个值是数值;5. 'o转载 2017-01-20 13:56:11 · 266 阅读 · 0 评论 -
jQuery事件
$(document).ready(function(){ $("button").click(function(){ $("p").hide(); });});This is a headingThis is a paragraph.This is another paragraph.Click me当按钮的点击事件被触发时会调用一个函数转载 2016-09-20 17:13:23 · 259 阅读 · 0 评论 -
jQuery 语法
jQuery 语法jQuery 语法是为 HTML 元素的选取编制的,可以对元素执行某些操作。基础语法是:$(selector).action()美元符号定义 jQuery选择符(selector)“查询”和“查找” HTML 元素jQuery 的 action() 执行对元素的操作示例$(this).hide() - 隐藏当前元素$("p").hide() - 隐藏所转载 2016-09-20 16:59:33 · 260 阅读 · 0 评论 -
js知识点
1. JS的组成:a) ECMAScript 是什么:担当的是一个翻译的角色;是一个解释器;帮助计算机来读懂我们写的程序;实现+-*/, 定义变量;几乎没有兼容性问题;b) DOM: 文档对象模型;文档指的就是网页;把网页变成一个JS可以操作的对象;给了JS可以操作页面元素的能力;document;有一些兼容性问题;c) BOM:浏览器对象模型;给了JS操作转载 2017-01-22 15:41:27 · 218 阅读 · 0 评论 -
js中==与===区别
js == 与 === 的区别[转]1、对于string,number等基础类型,==和===是有区别的1)不同类型间比较,==之比较“转化成同一类型后的值”看“值”是否相等,===如果类型不同,其结果就是不等2)同类型比较,直接进行“值”比较,两者结果一样2、对于Array,Object等高级类型,==和===是没有区别的进行“指针地址”比较3、基转载 2017-06-27 11:43:51 · 242 阅读 · 0 评论 -
JS中关于clientWidth offsetWidth scrollWidth 等的含义
网页可见区域宽: document.body.clientWidth;网页可见区域高: document.body.clientHeight;网页可见区域宽: document.body.offsetWidth (包括边线的宽);网页可见区域高: document.body.offsetHeight (包括边线的宽);网页正文全文宽: document.body.scroll转载 2017-11-07 22:35:18 · 517 阅读 · 0 评论 -
javascript中 if(!-[1,])是什么意思呀?
这是一个判断IE浏览器版本的精简脚本 IE浏览器不管是什么版本,总是跟Web标准有些不太兼容。对于代码工作者来说,自然是苦不堪言,为了考虑IE的兼容问题,不管是写 CSS 还是 JS,往往都要对 IE 特别对待,这就少不了做些判断。本文不讨论如何区分 IE 的样式,仅是 JS 判定 IE 浏览器。 这个目前世界上最短的 Javascript 判定 IE 浏览器的方法来自俄罗斯!它已经在转载 2017-11-04 23:07:40 · 2091 阅读 · 0 评论 -
javascript 类数组
google了下,中文介绍的很少。最终还是在在线的《javascript权威指南》free阅读上找到了。看来我没细看《javascript权威指南》啊!白买了。那么,什么是javascript 类数组呢?定义:拥有length属性,其它属性(索引)为非负整数(对象中的索引会被当做字符串来处理,这里你可以当做是个非负整数串来理解)不具有数组所具有的方法ps:这是我参考的定转载 2017-11-04 23:29:40 · 3559 阅读 · 0 评论 -
JavaScript 的怪癖 8:“类数组对象”
原文: JavaScript quirk 8 array-like objects译者: Malcolm Yu此文是 javascript 的 12 个怪癖(quirks) 系列的第八篇。JavaScript中有一些看起来像却又不是数组的对象,唤作类数组。 本文旨在探究类数组的确切含义和高效的使用方式。类数组一个类数组对象:具有:指向对象元素的数转载 2017-11-04 23:31:07 · 244 阅读 · 0 评论 -
JavaScript中call,apply,bind方法的总结
why?call,apply,bind干什么的?为什么要学这个? 一般用来指定this的环境,在没有学之前,通常会有这些问题。var a = { user:"追梦子", fn:function(){ console.log(this.user); }}var b = a.fn;b(); //undefined我们是转载 2017-11-04 23:40:07 · 234 阅读 · 0 评论 -
JS基础——异步回调
前言一个刚入前端的小菜,虽然以前看到过关于回调的文章,但是呢,理解起来有点费劲啊。当时的脑海里就一个概念。回调:大多出现在Ajax请求,用于处理收到的请求结果。嘿嘿,当时真的就是这一个想法啊。现在真的入这行,而且这个概念也非常重要,用的地方太多太多,是时候把它捡起来好好理解一番。当然,本文适合菜鸟,因为我是以一个菜鸟的思维去理解的。回调概念理解一个新东西,很有必须去理解下它的概念,因为这是最简洁明...转载 2018-05-18 10:03:28 · 7817 阅读 · 6 评论 -
js之数组,对象,类数组对象
数组定义:简而言之就是一组有序的数据集合,其索引为从0开始且自然增长的整数,其元素值可以是任何js数据!并且包含一个名为length的属性,该属性表示数组元素的个数!看着上面的定义,我们很容易就能大概知道数组是什么样的东西,下面我们来看个简单的例子: 1 2 3 4 5 var array = [1,2,3]; co...转载 2018-09-15 17:19:13 · 219 阅读 · 0 评论 -
深入理解javascript原型和闭包(12)——简介【作用域】
提到作用域,有一句话大家(有js开发经验者)可能比较熟悉:“javascript没有块级作用域”。所谓“块”,就是大括号“{}”中间的语句。例如if语句:再比如for语句:所以,我们在编写代码的时候,不要在“块”里面声明变量,要在代码的一开始就声明好了。以避免发生歧义。如: 其实,你光知道“javascript没有块级作用域”是完全不够的,你需要知道的是——javasc转载 2016-10-19 11:38:49 · 205 阅读 · 0 评论 -
深入理解javascript原型和闭包(11)——执行上下文栈
继续上文的内容。执行全局代码时,会产生一个执行上下文环境,每次调用函数都又会产生执行上下文环境。当函数调用完成时,这个上下文环境以及其中的数据都会被消除,再重新回到全局上下文环境。处于活动状态的执行上下文环境只有一个。其实这是一个压栈出栈的过程——执行上下文栈。如下图: 可根据以下代码来详细介绍上下文栈的压栈、出栈过程。如上代码。在执行代码之前,首先将创建全局上下文转载 2016-10-19 11:29:30 · 242 阅读 · 0 评论 -
深入理解javascript原型和闭包(9)——简述【执行上下文】下
继续上一篇文章(http://www.cnblogs.com/wangfupeng1988/p/3986420.html)的内容。上一篇我们讲到在全局环境下的代码段中,执行上下文环境中有如何数据:变量、函数表达式——变量声明,默认赋值为undefined;this——赋值;函数声明——赋值; 如果在函数中,除了以上数据之外,还会有其他数据。先看以下代码:以上代码展示了在转载 2016-10-19 11:06:33 · 205 阅读 · 0 评论 -
学习 JavaScript 最难点之一 -- 理解prototype(原型)
玩了这么久JavaScript, 感觉最难的就2个部分, 原型和闭包, 很有必要总结一下.主要是回顾下自己的理解过程是怎样的, 可能和别人的理解或者什么标准答案有出入, 完全是自己的想法, 因此请大家不要乱喷, 全当是思路而已, 没有半点误人子弟的意思.下文中提到的JavaScript都将简写成JS, 实践环境为Google Chrome 25.0.1364.172 (正式转载 2016-10-18 06:34:03 · 306 阅读 · 0 评论 -
深入理解javascript原型和闭包(18)——补充:上下文环境和作用域的关系
本系列用了大量的篇幅讲解了上下文环境和作用域,有些人反映这两个是一回儿事。本文就用一个小例子来说明一下,作用域和上下文环境绝对不是一回事儿。 再说明之前,咱们先用简单的语言来概括一下这两个的区别。00 上下文环境:可以理解为一个看不见摸不着的对象(有若干个属性),虽然看不见摸不着,但确实实实在在存在的,因为所有的变量都在里面存储着,要不然咱们定义的变量在哪里存?另外,对于函数来转载 2016-10-19 14:27:59 · 241 阅读 · 0 评论 -
深入理解javascript原型和闭包(15)——闭包
前面提到的上下文环境和作用域的知识,除了了解这些知识之外,还是理解闭包的基础。至于“闭包”这个词的概念的文字描述,确实不好解释,我看过很多遍,但是现在还是记不住。但是你只需要知道应用的两种情况即可——函数作为返回值,函数作为参数传递。第一,函数作为返回值如上代码,bar函数作为返回值,赋值给f1变量。执行f1(15)时,用到了fn作用域下的max变量的值。至于如何跨作用域取值,转载 2016-10-19 14:18:42 · 257 阅读 · 0 评论 -
深入理解javascript原型和闭包(14)——从【自由变量】到【作用域链】
先解释一下什么是“自由变量”。在A作用域中使用的变量x,却没有在A作用域中声明(即在其他作用域中声明的),对于A作用域来说,x就是一个自由变量。如下图如上程序中,在调用fn()函数时,函数体中第6行。取b的值就直接可以在fn作用域中取,因为b就是在这里定义的。而取x的值时,就需要到另一个作用域中取。到哪个作用域中取呢?有人说过要到父作用域中取,其实有时候这种解释会产生歧义。例如:转载 2016-10-19 14:17:44 · 212 阅读 · 0 评论 -
深入理解javascript原型和闭包(13)-【作用域】和【上下文环境】
上文简单介绍了作用域,本文把作用域和上下文环境结合起来说一下,会理解的更深一些。如上图,我们在上文中已经介绍了,除了全局作用域之外,每个函数都会创建自己的作用域,作用域在函数定义时就已经确定了。而不是在函数调用时确定。下面我们将按照程序执行的顺序,一步一步把各个上下文环境加上。另外,对上下文环境不了解的朋友,可以去看看之前的两篇文章:http://www.cnblogs.com/w转载 2016-10-19 13:53:33 · 195 阅读 · 0 评论 -
深入理解javascript原型和闭包(1)——一切都是对象
“一切都是对象”这句话的重点在于如何去理解“对象”这个概念。——当然,也不是所有的都是对象,值类型就不是对象。 首先咱们还是先看看javascript中一个常用的函数——typeof()。typeof应该算是咱们的老朋友,还有谁没用过它?typeof函数输出的一共有几种类型,在此列出: function show(x) { cons转载 2016-10-19 09:01:10 · 194 阅读 · 0 评论 -
深入理解javascript原型和闭包(3)——prototype原型
既typeof之后的另一位老朋友!prototype也是我们的老朋友,即使不了解的人,也应该都听过它的大名。如果它还是您的新朋友,我估计您也是javascript的新朋友。 在咱们的第一节(深入理解javascript原型和闭包(1)——一切都是对象)中说道,函数也是一种对象。他也是属性的集合,你也可以对函数进行自定义属性。不用等咱们去试验,javascript自己就先做了表率,人转载 2016-10-19 09:11:23 · 269 阅读 · 0 评论 -
深入理解javascript原型和闭包(2)——函数和对象的关系
上文(理解javascript原型和作用域系列(1)——一切都是对象)已经提到,函数就是对象的一种,因为通过instanceof函数可以判断。var fn = function () { };console.log(fn instanceof Object); // true对!函数是一种对象,但是函数却不像数组一样——你可以说数组是对象的一种,因为数组就像是对象的一个子集一样转载 2016-10-19 09:17:45 · 196 阅读 · 0 评论 -
深入理解javascript原型和闭包(4)——隐式原型
注意:本文不是javascript基础教程,如果你没有接触过原型的基本知识,应该先去了解一下,推荐看《javascript高级程序设计(第三版)》第6章:面向对象的程序设计。上节已经提到,每个函数function都有一个prototype,即原型。这里再加一句话——每个对象都有一个__proto__,可成为隐式原型。这个__proto__是一个隐藏的属性,javascript不希望开发者用转载 2016-10-19 09:59:54 · 210 阅读 · 0 评论 -
深入理解javascript原型和闭包(5)——instanceof
又介绍一个老朋友——instanceof。对于值类型,你可以通过typeof判断,string/number/boolean都很清楚,但是typeof在判断到引用类型的时候,返回值只有object/function,你不知道它到底是一个object对象,还是数组,还是new Number等等。这个时候就需要用到instanceof。例如:上图中,f1这个对象是被Foo创建,但是“f转载 2016-10-19 10:15:34 · 185 阅读 · 0 评论 -
深入理解javascript原型和闭包(6)——继承
为何用“继承”为标题,而不用“原型链”?原型链如果解释清楚了很容易理解,不会与常用的java/C#产生混淆。而“继承”确实常用面向对象语言中最基本的概念,但是java中的继承与javascript中的继承又完全是两回事儿。因此,这里把“继承”着重拿出来,就为了体现这个不同。 javascript中的继承是通过原型链来体现的。先看几句代码以上代码中,f1是Foo函数new出来的对转载 2016-10-19 10:24:57 · 219 阅读 · 0 评论 -
深入理解javascript原型和闭包(7)——原型的灵活性
在Java和C#中,你可以简单的理解class是一个模子,对象就是被这个模子压出来的一批一批月饼(中秋节刚过完)。压个啥样,就得是个啥样,不能随便动,动一动就坏了。而在javascript中,就没有模子了,月饼被换成了面团,你可以捏成自己想要的样子。 首先,对象属性可以随时改动。对象或者函数,刚开始new出来之后,可能啥属性都没有。但是你可以这会儿加一个,过一会儿在加两个,非常灵活转载 2016-10-19 10:32:44 · 210 阅读 · 0 评论 -
深入理解javascript原型和闭包(8)——简述【执行上下文】上
什么是“执行上下文”(也叫做“执行上下文环境”)?暂且不下定义,先看一段代码:第一句报错,a未定义,很正常。第二句、第三句输出都是undefined,说明浏览器在执行console.log(a)时,已经知道了a是undefined,但却不知道a是10(第三句中)。在一段js代码拿过来真正一句一句运行之前,浏览器已经做了一些“准备工作”,其中就包括对变量的声明,而不是赋值。变量赋值是在赋转载 2016-10-19 10:58:31 · 181 阅读 · 0 评论 -
js你真的了解offsetWidth吗
offsetWidth是什么?答:它可以获取物体宽度的数值那么就只是这样吗!html部分 <div id="div1"></div> <style> #div1 { width:200px; height:200px; border:1px solid red; padding:2px; margin:2px; ...转载 2018-09-15 17:25:13 · 405 阅读 · 0 评论