随笔分类 - JS
摘要:1.什么是全角和半角? 全角:是一种电脑字符,是指一个全角字符占用两个标准字符(或两个半角字符)的位置。全角占两个字节。 汉字字符和规定了全角的英文字符及国标GB2312-80中的图形符号和特殊字符都是全角字符。在全角中,字母和数字等与汉字一样占据着等宽的位置。 半角:是指一个字符占用一个标准的字符
阅读全文
摘要:1.模块的写法 模块化编程一般都有这么几个过渡过程,如下描述。 原始方法 上面的函数m1()和m2(),组成一个模块。使用的时候,直接调用就行了。 这种做法的缺点很明显:"污染"了全局变量,无法保证不与其他模块发生变量名冲突,而且模块成员之间看不出直接关系。 对象写法 为了解决上面的缺点,可以把模块
阅读全文
摘要:下面的函数实现了一个我们想要的最基本的图片预加载效果 我们可以通过如下的方式加载我们想要的图片 上面的方法已经可以满足我们最基本的预加载图片的效果了,但情况往往并不如此,我们往往需要确切的知道图像是否被真正加载完成,并可能在后续执行一系列对图片的操作功能。幸运的是,这个功能实现起来并不难,我们可以使
阅读全文
摘要:slice(start, end) slice()方法返回从参数指定位置开始到当前数组末尾的所有项。如果有两个参数,该方法返回起始和结束位置之间的项,但不包括结束位置的项。 splice()有删除,插入,替换的功能 删除需要两个参数,要删除的第一项的位置和要删除的项数。 插入需要三个参数:起始位置、
阅读全文
摘要:break语句 break语句会使运行的程序立刻退出包含在最内层的循环或者退出一个switch语句。由于它是用来退出循环或者switch语句,所以只有当它出现在这些语句时,这种形式的break语句才是合法的。 如果一个循环的终止条件非常复杂,那么使用break语句来实现某些条件比用一个循环表达式来表
阅读全文
摘要:JavaScript语言允许,语句的前面有标签(label),相当于定位符,用于跳转到程序的任意位置,标签的格式如下。 标签可以是任意的标识符,但是不能是保留字,语句部分可以是任意语句。 标签通常与break语句和continue语句配合使用,跳出特定的循环。 上面代码为一个双重循环区块,break
阅读全文
摘要:变量转换 但是转换日期(new Date(myVar))和正则表达式(new RegExp(myVar))必须使用构造函数,创建正则表达式的时候要使用/pattern/flags这样的简化形式。 要了解~~运算符可以查看《JS基础篇--JS按位非(~)运算符与~~运算符的理解分析》 取整同时转换成数
阅读全文
摘要:window.requestAnimationFrame 概述 window.requestAnimationFrame()这个方法是用来在页面重绘之前,通知浏览器调用一个指定的函数,以满足开发者操作动画的需求。这个方法接受一个函数为参,该函数会在重绘前调用。 注意: 如果想得到连贯的逐帧动画,函数
阅读全文
摘要:sort() 方法用于对数组的元素进行排序,并返回数组。默认排序顺序是根据字符串Unicode码点。语法:arrayObject.sort(sortby);参数sortby可选。规定排序顺序。必须是函数。注:如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编
阅读全文
摘要:URI 在维基百科中对于URI的解释是这样子的: 在计算机术语中,统一资源标识符(Uniform Resource Identifier,或URI)是一个用于标识某一互联网资源名称的字符串。 该种标识允许用户对网络中(一般指万维网)的资源通过特定的协议进行交互操作。URI由包括确定语法和相关协议的方
阅读全文
摘要:window.atob() 与window.btoa() WindowBase64.atob() 函数用来解码一个已经被base-64编码过的数据。你可以使用 window.btoa() 方法来编码一个可能在传输过程中出现问题的数据,并且在接受数据之后,使用 window.atob() 方法来将数据
阅读全文
摘要:1.min()和max()方法 Math.min()用于确定一组数值中的最小值。Math.max()用于确定一组数值中的最大值。 2.舍入方法 Math.ceil()执行向上舍入,即它总是将数值向上舍入为最接近的整数; Math.floor()执行向下舍入,即它总是将数值向下舍入为最接近的整数; M
阅读全文
摘要:在SF上看到这个问题,js中怎么理解按位取反? 问题: ~ 运算符查看表达式的二进制表示形式的值,并执行位非运算。Javascript 按位取反运算符 (~) ,对一个表达式执行位非(求非)运算。如 ~1 = -2; ~2 = -3; js取反我只知道个!,但是~为什么也叫取反,他返回的又不是boo
阅读全文
摘要:创建对象 这就是创建对象最基本的方法,但是有个缺点,想创建一个类似的对象,就会产生大量的代码。 工厂模式 为了解决多个类似对象声明的问题,我们可以使用一种叫做工厂模式的方法,这种方法就是为了解决实例化对象产生大量重复的问题。 工厂模式解决了重复实例化的问题,但还有一个问题,那就是识别问题,因为根本无
阅读全文
摘要:学习要点: 1.传统事件绑定的问题2.W3C事件处理函数3.IE事件处理函数4.事件对象的其他补充 事件绑定分为两种:一种是传统事件绑定(内联模型,脚本模型),一种是现代事件绑定(DOM2级模型)。现代事件绑定在传统绑定上提供了更强大更方便的功能。 一 传统事件绑定的问题 传统事件绑定中的内联模型不
阅读全文
摘要:转换方法 所有对象都具有toLocaleString()、toString()、valueOf()方法。其中调用数组的toString方法会返回以数组中的每个值的字符串形式拼接而成的一个以逗号分割的字符串。 而调用valueOf()方法返回的还是数组。 得到的结果如图所示: 另外toLocaleSt
阅读全文
摘要:一:Date类型介绍 要创建一个日期对象,使用new操作符和Date构造函数即可: Date.parse()方法 其中Date.parse()方法接收一个表示日期的字符串参数,然后尝试根据这个字符串返回相应日期的毫秒数。ECMA-262没有定义Date.parse()应该支持哪种日期格式,因此这个方
阅读全文
摘要:这其实是一个很简单的js就可以实现,当然一般情况就是利用for循环,从第一个跟第二个开始比较,根据大小交互位置,思路很简单。 也就是js中的冒泡排序 冒泡排序 时间复杂度为O(n^2),有两个优点: 1.“编程复杂度”很低,很容易写出代码; 2.具有稳定性,这里的稳定性是指原序列中相同元素的相对顺序
阅读全文
摘要:前言Modernizr.js既能给老版本浏览器打补丁,又能保证新浏览器渐进增强的用户体验。作用:从实际操作来看,Modernizr默认做的事情很少,除了(在你选择的情况下)给不支持html5的标签的浏览器,如IE6,7,8追加一点由Remy Sharp开发的html5垫片脚本,使其识别、等html5...
阅读全文
摘要:在Firefox,chrome,opera,safari,ie9,ie8等高级浏览器直接可以用JSON对象的stringify()和parse()方法。 JSON.stringify(obj)将JSON转为字符串。JSON.parse(string)将字符串转为JSON格式; 结果:string 结
阅读全文