最近的文章列表

js中的属性:定义和赋值的区别

定义一个属性和为一个属性赋值是有区别的.本文解释了两者之间的区别以及各自的作用影响.该话题来自于Allen Wirfs-Brock在es-discuss邮件列表中的一封邮件.

1. 定义VS赋值

定义(Definition).定义属性需要使用相应的函数,比如:

...
2013/12/10 Comments:
IE6,IE7全局变量的DID(Dissociative Identity Disorder译为:人格分裂症) 变量怪异的操作模式和存储

问题描述:

在HTML文档里写上这段代码:
<script type="text/javascript"> window['a'] = 'Hi'; </script>
<script type= "text/javascript" src="out.js"></script>
<script type="text/javascript"> alert(a); </script>
然后在out.js里写上这句: if(false ) { var a = 'Hello'; } 然后用FF和IE6分别运行,看看你得到什么。
在FF里会弹出“Hi”,但是在IE6中,会得到“undefined”。 很神奇吧?按语法,无论如何,a都不可能是undefined。但是IE6里就会。
如果把两个语句都写在同一个文件里,就不会有这个情况。 如果把out.js里改成window.a,或者把前一个改成var a,也不会有这个情况。 如果把out.js里的var a移到if语句之外,或是把if的条件改为true,也不会有这个情况。
...
2013/12/9 Comments:
详解js中cookie的用法
JavaScript中的另一个机制:cookie,则可以达到真正全局变量的要求。 cookie是浏览器 提供的一种机制,它将document 对象的cookie属性提供给JavaScript。可以由JavaScript对其进行控制,而并不是JavaScript本身的性质。

cookie概述 
曾经利用一个不变的框架来存储购物栏数据,而商品显示页面是不断变化的,尽管这样能达到一个模拟 全局变量的功能,但并不严谨。例如在导航框架页面内右击,单击快捷菜单中的【刷新】命令,则所有的JavaScript变量都会丢失。因此,要实现严格的 跨页面全局变量,这种方式是不行的, JavaScript中的另一个机制:cookie,则可以达到真正全局变量的要求。 
...

2013/12/4 Comments:
屏蔽浏览器后退(back)按钮与清除网页历史记录
清除网页历史记录可以防止数据或者资源文件不用浏览器缓存的,在数据更新比较频繁的系统中,这个很重要。浏览器的后退按钮使得我们能够方便地返回以前访问过的页面,它无疑非常有用。但有时候我们不得不关闭这个功能,以防止用户打乱预定的页面访问次序。
本文介绍网络上可找到的各种禁用浏览器后退按钮方案,分析它们各自的优缺点和适 
用场合。

一、概述


曾经有许多人问起,“怎样才能‘禁用'浏览器的后退按钮?”,或者“怎样才能防止用户点击后退按钮返回以前浏 
...
2013/12/4 Comments:
多种js刷新页面的方法
我们常常需要刷新页面,局部刷新会得到更好的用户体验,这里整理了一些用js实现的刷新页面的代码,供参考

一、先来看一个简单的例子: 
下面以三个页面分别命名为frame.html、top.html、bottom.html为例来具体说明如何做。 
frame.html 由上(top.html)下(bottom.html)两个页面组成,代码如下: 


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
...
2013/12/4 Comments:
JS通过奇数项和偶数项实现两种背景颜色的表格实现代码
本文提供一种好看表格的解决方案,通过为<tr>元素添加属性或类型选择器,再通过CSS设置可以实现双背景色表格,但如果表格很长,逐个元素添加可真麻烦。而且这样的代码维护起来不容易。所以比较好的方式是用JS实现。
 
js双背景色表格原理其实很简单:利用getElementsByTagName得到所有的<tr>元素,然后分别为奇数项和偶数项的<tr>元素添加背景颜色。 
...
2013/12/4 Comments:
前端开发面试题及答案

常见问题:

 

一、你能描述一下渐进增强和优雅降级之间的不同吗?

 

如果提到了特性检测,可以加分。
检测浏览器,渐进增强就是让牛b的浏览器的效果更好,优雅降级就是让2b的浏览器在功能ok的情况下效果一般。

二、线程与进程的区别

 

一个程序至少有一个进程,一个进程至少有一个线程. 
线程的划分尺度小于进程,使得多线程程序的并发性高。
另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。
线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。
从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。
...
2013/12/2 Comments:
前端开发面试题(很有料)

前端面试题,不仅仅是应付面试用的,通过一份好的前端面试题,可以全方面的考察自己是否是一个合格的前端开发人员,本文末尾有部分答案的链接。

目录

  1. 常见问题
  2. HTML 相关问题
  3. CSS 相关问题
  4. ...
2013/12/2 Comments:
详解js arguments,js callee caller
在写复杂的js函数时,经常会用到js中arguments, jcallee caller,理解这些,对于阅读框架源代码有很大的帮助,比如github上的js框架等。

关键字:arguments,callee,caller
arguments:表示传入函数的参数
callee:表示函数和函数主体的语句
caller:表示调用该函数的函数

arguments

...
2013/12/1 Comments:
input动态赋值不触发onchange之oninput,onpropertychange,onchange的用法和区别

input text框的动态赋值会不会触发onchange事件

答:不会。

oninput,onpropertychange,onchange的用法

      onchange触发事件必须满足两个条件

a)当前对象属性改变,并且是由键盘或鼠标事件激发的(脚本触发无效)

b)当前对象失去焦点(onblur);

...
2013/11/20 Comments: