JavaScript的null和undefined对比总结
前言 说到这两个类型,首先应该从整体上明确一下JavaScript中提供的数据类型。 JavaScript中的数据类型分为两类:原始类型和对象类型。 其中,原始类型又可以细分为如下5类:数字,字符串,布尔值,null,undefined。 null和undefined都表示一种“空缺”的意思,但具体还有很多细节不同。 null类型检测对null使用typeof检测,可得: 说明 由以
前言 说到这两个类型,首先应该从整体上明确一下JavaScript中提供的数据类型。 JavaScript中的数据类型分为两类:原始类型和对象类型。 其中,原始类型又可以细分为如下5类:数字,字符串,布尔值,null,undefined。 null和undefined都表示一种“空缺”的意思,但具体还有很多细节不同。 null类型检测对null使用typeof检测,可得: 说明 由以
情景 在《JavaScript权威指南 第六版 中文版》P147,讲到稀疏数组时,书中给出如下的分析和例子: 读完后感觉第一个红框和第二个红框中的表述不是很清楚,有些矛盾。于是在chrome浏览器的控制台进行测试,结果如下: 第一个红框对应结果 第二个红框对应结果 第三个红框对应结果也就是说实测结果与书中第一个红框中的蓝色小框表述相反:0 in a1输出的值是false。 分析 以下
单位介绍 pt:磅(point),绝对单位,印刷行业常用,等于1/72英寸(即0.03526厘米,1英寸 = 2.54厘米)。 px:像素(pixel),相对长度单位,相对于显示器屏幕分辨率而言。 PPI:像素密度(Pixel Per Inch),每英寸所拥有的像素数量。因此PPI数值越高,即代表显示屏能够以越高的密度显示图像。当然,显示的密度越高,拟真度就越高。 DPI:点数密度(Dot
前言 本篇记录《JavaScript权威指南》中提供的通用性的DOM结构遍历函数,这是十分常用的场景,可以获取除了Text节点以外的全部文档节点。 实现parent函数 返回元素e的第n层祖先元素,如果不存在则返回null 如果n===0;返回e本身;n===1,返回父节点,以此类推123456function parent(e, n) { if (n === undefin
前言 接续之前的一篇JavaScript的闭包案例—1,加深对《JavaScript权威指南》P187的理解。 描述 使用闭包,可以实现共享私有状态,实现私有存取器属性。本质上就是在同一个作用域链上定义了两个或多个闭包,来共享同样的私有变量。这是十分重要的一种应用,但是要十分小心因为这种做法将那些本不希望共享的变量共享给了其他闭包,这会造成严重的错误并让我们不解。 假设有这样的需求:需要
案例 setTimeout和setInterval对比 另外,根据网上一张关于此问题比较流行的图:1234567function click() { // code block1... setInterval(function() { // process ... }, 200); // code block2 } setInterval可能会存在的问题
背景 闭包是JavaScript中的一个重要概念。 JavaScript采用词法作用域,函数的执行依赖于变量作用域,这个作用域是在函数定义时决定的,而不是函数调用时决定的。函数对象可以通过作用域链相互关联起来,函数体内部的变量都可以保存在函数作用域内,这就是闭包的特性。
方法一思路:创建一个新的结果数组,遍历原数组,利用数组indexOf()方法,判断原数组当前值是否在结果数组中存在,如果存在则跳过,否则压入结果数组。12345678910 function removeDuplicatedItem(ar) { var ret = []; for (var i = 0, j = ar.length; i < j; i++)
前言 ajax,即“Asynchronous Javascript And XML”(异步JavaScript和XML),是一种异步加载数据的Web交互方法,在网页开发中使用十分普遍,实现局部刷新以达到更好的交互效果是ajax的典型应用。 核心 $.ajax(即jQuery.ajax),是jQuery库进行的一次封装。其核心实现是利用了JavaScript中的XMLHttpRequest对
前言 表单提交是一项常见操作,对于输入内容的合法性必须在前后端都做验证才能保证可靠性。表单验证有很重要的意义,除了防止注入攻击之类的安全问题外,有时如果不能正确的进行验证,可能会使合法的页面渲染受到影响。比如在实际开发中遇到的一种问题,jsp页面使用JSTL库自定义标签渲染后台传来的数据时,需要将这组数据作为参数传入相应点击事件的回调函数,如果参数中一旦也有双引号”,就会导致解析错误—oncl
主要html结构以下html片段表示了重发倒计时组件的文档结构,依赖Amaze UI样式框架。 onclick=”btnSendMsgAgain();return false;”中的return false作用:验证码是位于form表单中的,点击该按钮的作用是发送验证码,而不是提交表单,return false为了彻底阻止元素的默认事件。 123<div class="am-u-sm-
前言 实现金额数字的每三位打”,”,便于识别金额大小。 实现12345678910111213//s: 希望转换的金额数字;n:希望保留的小数位数function formatMoney(s, n) { n = n > 0 && n <= 20 ? n : 2; //正则/[^\d\.-]/g表示去除传入字符串中非数字,非小数点,非负号以
实践123456789101112131415161718function getEvent() { if (document.all) { var iEevent = window.event; iEevent.target = window.event.srcElement; return iEevent; }
前言 “unobtrusive javascript—不唐突的JavaScript”最早是从《JavaScript权威指南》中看到,13.2节最先出现了这个概念。我认为也可以描述成“优雅的JavaScript”,指的是那些拥有良好的编码规范,易于维护的JavaScript写法和注意事项。进而在网上看到了这篇“编写不唐突的JavaScript(unobtrusive-javascript)的七条
场景与现象 具体业务逻辑:在组件进行初始化时需要赋值一个二维数组(4 * 12),如下所示:123456$scope.data = [ [-1, 1, 3, 7, 13, 16, 18, 16, 15, 9, 4, 2] [0, 1, 4, 7, 12, 15, 16, 15, 15, 10, 6, 5], [4, 4, 5, 10, 16, 22, 25, 24, 20, 14, 9,