
javascript
石倩蓉
一名优秀的Web前端,应该是Write less,do more。
展开
-
Javascript延迟加载的方式(未完)
当一个网站有很多js代码需要加载时,js的位置会影响网页的加载速度,为了让网页的加载速度更快,引入以下延迟加载js的方式:会延迟到浏览器遇到后再执行,只适用于外部脚本,老的浏览器支持此属性,现代浏览器都会忽略这个属性,像平常一样处理脚本。将js放在文件的底部setTimeout("document.getEleme原创 2015-04-29 21:41:08 · 411 阅读 · 0 评论 -
js中typeof和instanceof的区别
typeof一个一元运算符,放在运算数之前,运算数可以使任意数据类型。它返回的值是一个字符串,该字符串说明运算数的类型。typeof返回的结果是:number、boolean、string、function、object、undefined。对于array、null等特殊对象使用typeof一律返回object,这是typeof的局限性。var a;typeof(a);//声不声明原创 2015-05-11 21:44:28 · 432 阅读 · 0 评论 -
<br/>与\n的区别
document.write("abcdef");document.write输出的是html,在html中用来表示换行,而\n属于javascriptalert("abc\ndef");alert的参数是javascript中的字符串,javascript中适用\n来表示换行。原创 2015-05-21 15:11:16 · 2761 阅读 · 0 评论 -
执行上下文中的变量对象和活动对象
一个执行上下文可以抽象理解为object。每个执行上下文都有一系列的属性(可以称为上下文状态),他们用来追踪关联代码的执行进度。Execution context变量对象Vars,function declaration,arguments…作用域链原创 2015-07-21 10:29:34 · 1108 阅读 · 0 评论 -
javascript中的this
this对象指的是函数赖以运行的环境对象,因此this与函数的调用方式有关,函数的调用方式分为以下几种:1.作为对象的方法调用 var point = { x : 0, y : 0, moveTo : function(x, y) { this.x = this.x + x; this.y = this.y + y; } }; po原创 2015-07-22 08:56:04 · 345 阅读 · 0 评论 -
php向js传值问题
php向JS传值的问题因为PHP数组的数据编码和JS 数组的编码格式不一样,不能直接输出。PHP函数库提供了编/解码JSON的函数:json_encode()和json_decode(),可以比较方便的传递数组或对象给javascript。注意:PHP 5.2以上才绑定了JSON扩展。json_encode()该函数主要用来将数组和对象,转换为json格式。js原创 2015-07-22 22:12:45 · 774 阅读 · 0 评论 -
HTML DOM方法:setTimeout与setInterval
javascript都是以单线程的方式运行于浏览器的javascript引擎中的,setTimeout和setInterval的作用只是把你要执行的代码以你设定的一个时间点插入js引擎维护的一个代码队列中,插入代码队列并不意味着你的代码就会立马执行。setTimeoutfunction click() { // code block1... setTimeout(function()原创 2015-07-23 10:48:39 · 572 阅读 · 0 评论 -
事件捕获与事件冒泡
事件传播模型:事件冒泡和事件捕获两个过程即事件先到达根元素,再从根元素一层一层向下传播到目标元素,然后再一层一层向上传到根元素。one two three four var one=document.getElementById('one'); var two=document.getElementById('two'); var原创 2015-07-23 16:03:58 · 510 阅读 · 0 评论 -
eval()
eval()函数可计算某个字符串,并执行其中的javascript代码eval(string);string:必需。要计算的字符串,其中含有要计算的javascript表达式或要执行的语句。该方法只接受原始字符串作为参数,如果string参数不是原始字符串,那么该方法将不作任何改变的返回。因此不要为其传递String对象作为参数。如果试图覆盖eval属性或把eval()方法赋予另一原创 2015-07-24 10:55:50 · 472 阅读 · 0 评论 -
对象引用(浅克隆和深克隆)
Javascript中对象的深度克隆一、js中的数据类型Js中数据类型分为两大类:(1)基本数据类型:数值、字符串、布尔值、null、undefined(2)复杂数据类型:对象二、克隆的概念: 浅度克隆:基本数据类型为值传递,对象类型为引用传递 深度克隆:所有属性和方法均完全复制,与原对象完全脱离,也就是说对于原创 2015-04-22 15:05:02 · 467 阅读 · 0 评论 -
闭包
闭包演示 p {background:gold;} /*function init() { var pAry = document.getElementsByTagName("p"); for( var i=0; i<pAry.length; i++ ) { pAry[i].onclick = function() { alert(i);原创 2015-07-21 19:01:42 · 375 阅读 · 0 评论 -
string的方法(slice,substr,substring)
1.stringObject.substring(start,stop)用于提取字符串中介于两个指定下标之间的字符。start和stop为非负的整数。返回值:一个新的字符串,内容是从start处到stop-1处的所有字符,字符串长度为stop-start.说明:(1)如果省略stop参数,那么返回的子串会一直到字符串的结尾。(2)如果start和stop的值相等,那么返回一个空原创 2015-05-14 20:34:55 · 581 阅读 · 0 评论 -
删除数组元素的方法
1.arr.splice(index,howmany); 返回含有被删除的元素的数组。 原来数组的长度、索引都会相应的改变。 该方法IE5.5以后才支持2.arr.length=新的值; 会从数组的末尾元素开始删除。3.Array.prototype.remove=function(dx) { if(isNaN(dx)||dx>this.原创 2015-05-14 08:43:05 · 553 阅读 · 0 评论 -
slice ,splice, split的详解
slicestringObject.slice(start,end);arrayObject.slice(start,end);返回一个新数组,包含从index到end(不包含该元素)的arrayObject的元素,start和end可以为负数,即从结尾开始算起,-1指的是倒数第一个元素。注意:splice()与slice()方法的作用不同,splice()是直原创 2015-04-29 21:43:52 · 656 阅读 · 0 评论 -
用js实现下列功能,将给定的数字转化为千分位的格式,如把"10000"转化为"10,000",并考虑性能方面的因素
1.document.getElementById("btn").onclick=function(){ var num=document.getElementById("num").value; //console.lg(Object.prototype.toString.call(num).slice(8,-1)); 输出string var newNum=num.split("原创 2015-04-30 11:18:55 · 839 阅读 · 0 评论 -
ECMAScript5新增array方法
数组在各个编程语言中的重要性不言而喻,但是在之前的JavaScript中数组(JavaScript 数组详解)虽然功能已经很强大,但操作方法并不完善,在ECMAScript5中做了适当的补充。Array.isArray(element)这是Array对象的一个静态函数,用来判断一个对象是不是数组var a = new Array(123); var转载 2015-05-11 21:37:09 · 581 阅读 · 0 评论 -
javascript中的sort()方法
JavaScript实现多维数组、对象数组排序,其实用的就是原生的sort()方法,用于对数组的元素进行排序。sort() 方法用于对数组的元素进行排序。语法如下:arrayObject.sort(sortby)返回值为对数组的引用。请注意,数组在原数组上进行排序,不生成副本。如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按转载 2015-05-11 21:38:53 · 587 阅读 · 0 评论 -
js打印出1-10000之间的所有素数
function findPrimeNumber(start,end){ var result=[]; var flag; for(var i=start;i<end+1;i++){ flag=true; if(i==1){flag=false;} for(var j=2;j<i;j++){ if(i%j==0){ flag=false; break;原创 2015-05-04 18:39:37 · 4067 阅读 · 0 评论 -
用js将文档中className有“test”的id标签背景颜色设为黄色
.yelColor{background:yellow;}11223344//第一种方法var tds=document.getElementsByTagName("td");for(var i=0,len=tds.length;i<len;i++){ if(tds[i].className=="test"){ tds[i].clas原创 2015-05-04 18:14:30 · 2154 阅读 · 0 评论 -
用js打印出1-10000之间的所有对称数(如121 1331)
//方法一function isSymmetryNum(start,end){ var flag; for(var i=start;i<end+1;i++){ flag=true; var iStr=i.toString(); for(var j=0,len=iStr.length;j<len/2;j++){ if(iStr.charAt(j)!==iStr.charAt(l原创 2015-05-04 21:06:18 · 6632 阅读 · 0 评论 -
js修改css样式
一、全局样式改变可通过改变外链接样式的href的值来实现网页样式的实时切换。document.getElementById("css").href="c2.css";二、修改局部样式1.修改元素属性(其中className要注意)document.getElementById("text1").id=" ";document.getElementById("原创 2015-05-04 18:20:24 · 986 阅读 · 0 评论 -
ECMAScript5 Object新增的属性和方法
虽然说现在并不是所有的浏览器都已经支持ECMAScript5的新特性,但相比于ECMAScript4而言ECMAScript5被广大浏览器厂商广泛接受,目前主流的浏览器中只有低版本的IE不支持,其它都或多或少的支持了ECMAScript5的新特性,其中重中之重自然是一切对象的基类型——ObjectObject.create(prototype[,descriptors])这个方法用转载 2015-05-13 15:37:14 · 724 阅读 · 0 评论 -
正则表达式中的标志(/g和/m)
var exp=/pattern/flagg:表示全局模式(global),即pattern将匹配出所有的匹配项,并非在发现第一个匹配项时就立即停止(1)对于RegExp的test方法:加入g和不加入g没什么区别 RegExpObject.test(string) 如果字符串 string 中含有与 RegExpObject 匹配原创 2015-05-11 21:45:51 · 1518 阅读 · 0 评论 -
js中单引号和双引号的问题
单引号和双引号其实没啥区别,看你自己习惯了-------------------不正确-------------------正确双引号中再用双引号要这样:var str = "abc\"def\"ghi"用反斜杠来禁止解析双引号。下面是我摘录的,希望对你有用:在一个网页中的按钮,写onclick事件的处理代码,不小心写成如下:IE提示出错后,再漫不经心地转载 2015-05-13 09:40:57 · 452 阅读 · 0 评论 -
AJAX中的同步加载与异步加载
AJAX是四个单词的简写,其中Asynchronous即异步的意思,异步的链接可以同时发起多个,并且不会阻止JS代码执行。与之对应的概念是同步,同步的链接在同一时刻只会有一个,并且会阻止后续JS代码的执行,JS必须等待同步链接加载完毕后才能继续执行。AJAX发展到现在,不但可以发起异步链接,也可以发起同步链接。只是异步相对同步用到的更多。AJAX是四个单词的简写,其中Asynchr转载 2015-11-23 08:59:54 · 845 阅读 · 0 评论