#你不知道的Javascript

关于javascript中限定时间内防止按钮重复点击的思路

  有一天心血来潮,1分钟内重复点击了多次博客园首页的刷新博文列表的刷新按钮。果不其然,ip当时就被禁用了。后来,重启自己的路由器,重新获取ip才可以访问博客园主页。那么,设置一个限定时间内(比如1秒)防止按钮被重复点击的方法会不会更好一点呢? 思路一  最直接的思路可能就是点击按钮后,按钮的事件绑定函数解绑...

javascript面向对象系列第四篇——选项卡的实现

  面向对象的应用并非只是读几本书那么容易,需要有大量的工程实践做基础才能真正理解并学会使用它。本文将用面向对象的技术来制作一个简单的选项卡 图示说明   由图示结果看到,这是一个非常简单的选项卡。三个控制按钮利用点击事件分别控制三张不同的选项卡。选项卡用文字和背景颜色区分,控制按钮用轮廓outli...

javascript面向对象系列第二篇——创建对象的5种模式

  如何创建对象,或者说如何更优雅的创建对象,一直是一个津津乐道的话题。本文将从最简单的创建对象的方式入手,逐步介绍5种创建对象的模式 对象字面量  一般地,我们创建一个对象会使用对象字面量的形式  [注意]有三种方式来创建对象,包括new构造函数、对象直接量和Object.create()函数,详细情况移步...

javascript面向对象系列第一篇——构造函数和原型对象

  一般地,javascript使用构造函数和原型对象来进行面向对象编程,它们的表现与其他面向对象编程语言中的类相似又不同。本文将详细介绍如何用构造函数和原型对象来创建对象 构造函数  构造函数是用new创建对象时调用的函数,与普通唯一的区别是构造函数名应该首字母大写functionPerson(){this...

深入理解javascript对象系列第三篇——神秘的属性描述符

  对于操作系统中的文件,我们可以驾轻就熟将其设置为只读、隐藏、系统文件或普通文件。于对象来说,属性描述符提供类似的功能,用来描述对象的值、是否可配置、是否可修改以及是否可枚举。本文就来介绍对象中神秘的属性描述符 描述符类型  对象属性描述符的类型分为两种:数据属性和访问器属性数据属性  数据属性(datap...

javascript四种类型识别的方法

  javascript有复杂的类型系统,类型识别则是基本的功能。javascript总共提供了四种类型识别的方法,本文将对这四种方法进行详细说明 typeof运算符  typeof是一元运算符,放在单个操作数的前面,返回值为表示操作数类型的首字母小写的字符串  [注意]typeof运算符后面带不带圆括号都可...

深入理解javascript对象系列第二篇——属性操作

  对于对象来说,属性操作是绕不开的话题。类似于“增删改查”的基本操作,属性操作分为属性查询、属性设置、属性删除,还包括属性继承。本文是对象系列的第二篇——属性操作 属性查询  属性查询一般有两种方法,包括点运算符和方括号运算符varo={p:'HelloWor...

深入理解javascript对象系列第一篇——初识对象

  javascript中的难点是函数、对象和继承,前面已经介绍过函数系列。从本系列开始介绍对象部分,本文是该系列的第一篇——初识对象 对象定义  javascript的基本数据类型包括undefined、null、boolean、string、number和object。对象和其他基...

深入理解javascript函数系列第四篇——ES6函数扩展

  ES6标准关于函数扩展部分,主要涉及以下四个方面:参数默认值、rest参数、扩展运算符和箭头函数 参数默认值  一般地,为参数设置默认值需进行如下设置functionlog(x,y){y=y||'World';console.log(x,y);}  但这样设置实际上是有问题的,如果y的值本身是假值(包括f...

深入理解javascript作用域系列第五篇——一张图理解执行环境和作用域

  对于执行环境(executioncontext)和作用域(scope)并不容易区分,甚至很多人认为它们就是一回事,只是高程和犀牛书关于作用域的两种不同翻译而已。但实际上,它们并不相同,却相互纠缠在一起。本文先用一张图开宗明义,然后进行术语的简单解释,最后根据图示内容进行详细说明 图示查看大图 概...

深入理解javascript函数系列第三篇——属性和方法

  函数是javascript中特殊的对象,可以拥有属性和方法,就像普通的对象拥有属性和方法一样。甚至可以用Function()构造函数来创建新的函数对象。本文是深入理解javascript函数系列第三篇——属性和方法 属性【length属性】  函数系列第二篇中介绍过,argumen...

深入理解javascript函数系列第二篇——函数参数

  javascript函数的参数与大多数其他语言的函数的参数有所不同。函数不介意传递进来多少个参数,也不在乎传进来的参数是什么数据类型,甚至可以不传参数。本文是深入理解javascript函数系列第二篇——函数参数 arguments  javascript中的函数定义并未指定函数形...

深入理解javascript函数系列第一篇——函数概述

  函数对任何一门语言来说都是核心的概念。通过函数可以封装任意多条语句,而且可以在任何地方、任何时候调用执行。在javascript里,函数即对象,程序可以随意操控它们。函数可以嵌套在其他函数中定义,这样它们就可以访问它们被定义时所处的作用域中的任何变量,它给javascript带来了非常强劲的编程能力。本文是深入理解...

深入理解javascript作用域系列第四篇——块作用域

  尽管函数作用域是最常见的作用域单元,也是现行大多数javascript最普遍的设计方法,但其他类型的作用域单元也是存在的,并且通过使用其他类型的作用域单元甚至可以实现维护起来更加优秀、简洁的代码,比如块作用域。随着ES6的推广,块作用域也将用得越来越广泛。本文是深入理解javascript作用域系列第四篇&mdas...

深入理解javascript作用域系列第三篇——声明提升(hoisting)

  一般认为,javascript代码在执行时是由上到下一行一行执行的。但实际上这并不完全正确,主要是因为声明提升的存在。本文是深入理解javascript作用域系列第三篇——声明提升(hoisting) 变量声明提升a=2;vara;console.log(a);  直觉上,会认为是...
首页上一页...6566676869...下一页尾页