本文罗列了一般Js类型检测的方法,是构建Js知识体系的一小块。一、Js中有5种基本数据类型Undefined 、Null、Boolean、String、Number(包含NaN)NaN和任何类型的值都不相等,包括NaN;isNaN用来判断数值是不是NaN类型二、类型判断1. isFinite(number)是不是无穷大,如果不是返回true,如果是NaN,或者正负无穷大,或者非数字类型返回false2. typeof运算符使用的时候,空格或者typeof(param)返回的值stringnumberbooleanundefinedfunc...
前言这几天在修复一个web问题时,需要捕获Mac触摸板双指事件(上、下、左、右、放大、缩小),但发现并没有现成的轮子,还是要自己造。例如:jquery.mousewheel.js(添加跨浏览器的鼠标滚轮支持), 给得太简单,没有处理Mac双指行为,所以不能用。目标获取Mac触摸板双指行为,具体有两个,一个是实时拖动路线,二是手势(上、下、左、右、放大、缩小)。难点 双指行为只会触发mousewheel事件,其他什么的touch,mouse都不会触发,...
JavaScript中,除了五种原始类型(即数字,字符串,布尔值,null,undefined)之外的都是对象了,所以,不把对象学明白怎么继续往下学习呢?一.概述对象是一种复合值,它将很多值(原始值或其他对象)聚合在一起,可通过属性名访问这些值。而属性名可以是包含空字符串在内的任意字符串。JavaScript对象也可以称作一种数据结构,正如我们经常听说的“散列(hash)”、“散列表(hashtable)”、“字典(dictionary)”、“关联数组(...
详解JavaScript 提高性能的几个知识点总结:前段时间花时间看了大半的《High Performance JavaScript》这本书啊,然后就开始忙项目了,庆幸最忙的一周已经熬过去了。由于空不出时间,这个月写的学习笔记也不多,忙完最苦X的一周,这两天晚上也算是挑灯夜读了…终于是在残血之际将这本书shut down了…既然读完了,总归是要学到些什么的。说说对这本书的看法先吧,整体的来说,内容还是不错的,就是感觉有点老了(作为前端小白,也可...
文本整理了javascript操作DOM的一些常用的api,根据其作用整理成为创建,修改,查询等多种类型的api,主要用于复习基础知识,加深对原生js的认识。基本概念在讲解操作DOM的api之前,首先我们来复习一下一些基本概念,这些概念是掌握api的关键,必须理解它们。Node类型DOM1级定义了一个Node接口,该接口由DOM中所有节点类型实现。这个Node接口在JS中是作为Node类型实现的。在IE9以下版本无法访问到这个类型,JS中所有节点都继承自No...
JavaScript 只有一种数字类型 Number,而且在Javascript中所有的数字都是以IEEE-754标准格式表示的。浮点数的精度问题不是JavaScript特有的,因为有些小数以二进制表示位数是无穷的。十进制 二进制0.1 0.0001 1001 1001 1001 …0.2 0.0011 0011 0011 0011 …0.3 0.0100 1100 1100 1100 …0.4 0.0110 0110 0110 0110 …0.5 0.10.6 0.1001 100...
很多前端程序员经常忽视的一个JavaScript面试题的总结:前言年前刚刚离职了,分享下我曾经出过的一道面试题,此题是我出的一套前端面试题中的最后一题,用来考核面试者的JavaScript的综合能力,很可惜到目前为止的将近两年中,几乎没有人能够完全答对,并非多难只是因为大多面试者过于轻视他。题目如下:function Foo() {getName = function () { alert (1); };return this; } Foo.getName = function () { alert (2);}; Foo.proto...
整理了JavaScript Function 函数深入总结,感觉函数就是一大对象啊,各种知识点都能牵扯进来,不单单是 Function 这个本身原生的引用类型的各种用法,还包含执行环境,作用域,闭包,上下文,私有变量等知识点的深入理解。函数中的return return 语句可以不带有任何返回值,在这种情况下( return; 或函数中不含 return 语句时),函数在停止执行后将返回 undefiend 值。这种用法一般在需要提前停止函数执行而又不需要返回值的情况...
前言:调试技巧,在任何一项技术研发中都可谓是必不可少的技能。掌握各种调试技巧,必定能在工作中起到事半功倍的效果。譬如,快速定位问题、降低故障概率、帮助分析逻辑错误等等。而在互联网前端开发越来越重要的今天,如何在前端开发中降低开发成本,提升工作效率,掌握前端开发调试技巧尤为重要。本文将一一讲解各种前端JS调试技巧,也许你已经熟练掌握,那让我们一起来温习,也许有你没见过的方法,不妨一起来学习,也许你尚不...
《JavaScript 权威指南》这本书从第四版开始,一直到第六版,每个版本我都逐字逐句读过几遍,然而每一遍下来的感受却完全不一样。上上周的周一,再次翻开了这本犀牛书,这一次我是带着批判精神和研究精神过来的,所以看的时候也写下了一些感受和笔记,都是些容易被忽略的点,部分内容犀牛书上不一定有提到。之前都发在 微博 上,稍微整理了一番,放在这里,方便阅读。语句/表达式换个角度理解语句(statemaents)和表达式(express...
No1.语法和类型1.声明定义变量类型:var,定义变量;let,定义块域(scope)本地变量;const,定义只读常量。变量格式:以字母、下划线“_”或者$符号开头,大小写敏感。变量赋值:声明但未赋值的变量在使用时值为undefined,未声明的变量直接使用会抛异常。未赋值变量作计算:结果为NaN。例如:var x, y = 1; console.log(x + y); //结果为NaN,因为x没有赋值。2.作用域变量作用域:在ES6之前没有块声明域,变量作用于函数块或者全局...
什么是跨域?概念:只要协议、域名、端口有任何一个不同,都被当作是不同的域。URL 说明 是否允许通信http://www.a.com/a.jshttp://www.a.com/b.js 同一域名下 允许http://www.a.com/lab/a.jshttp://www.a.com/script/b.js 同一域名下不同文件夹 允许http://www.a.com:8000/a.jshttp://www.a.com/b.js 同一域名,不同端口 不允许http://www.a.com/a.jshttps://www.a.com/b.js 同一域名,不同...
今天在给元素注册事件的时候,使用addEventListener遇到了一个问题,这个好像之前也遇到过,觉得有必要总结一下,就是JS函数作为参数引发的问题。首先看以下代码,觉得下面代码有问题吗?是否能达到点击id3对应的元素后,弹出id3呢?例1var obj3=document.getElementById(id3); obj3.addEventListener(click,curClick(id1),true); function curClick(id){alert(id); }答案是否定,不能达到我想要的效果,因为这行代码在页面加载完成...
一、经常遇见的问题:JS中判断一个对象的类型时,通常使用typeof,这时候问题就来了,因为typeof()辨别数组的时候返回的是object,所以JS中判断一个对象是不是数组需要一些特殊的处理方式,下面将介绍个人总结的六种处理方法。二、开门见山开发中要判断一个对象是不是数组,推荐使用下面这个函数:function isArray(obj){if(Array.isArray){return Array.isArray(obj);}else{return Object.prototype.toString.call(obj)==="[object...
JavaScript的性能问题不容小觑,这就需要我们开发人员在编写JavaScript程序时多注意一些细节,本文非常详细的介绍了一下JavaScript性能优化方面的知识点,绝对是干货。前言一直在学习javascript,也有看过《犀利开发Jquery内核详解与实践》,对这本书的评价只有两个字犀利,可能是对javascript理解的还不够透彻异或是自己太笨,更多的是自己不擅于思考懒得思考以至于里面说的一些精髓都没有太深入的理解。鉴于想让自己有一个提升,...