摘要:
本文所使用的技巧是用了一条 Internet Explorer 的 CSS 表达式 (expression) 。你不可以直接使用该表达式,因为它可能会因为缓存而不更新。解决这一点的最简单的方式是使用 eval 包裹你的语句。如何解决“振动”的问题?显然 IE 有一个多步的渲染进程。当你滚动或调整你的浏览器大小的时候,它将重置所有内容并重新渲染页面,这个时候它就会重新处理 CSS 表达式。这会引起一个丑陋的“振动” bug ,在此处固定位置的元素需要调整以跟上你的(页面的)滚动,于是就会“跳动”。解决此问题的技巧就是使用 background-attachment:fixed 为 body 或 阅读全文
摘要:
this是JavaScript语言的一个关键字。它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用。随着函数使用场合的不同,this的值会发生变化。但是有一个总的原则,那就是this指的是,调用函数的那个对象。一、纯粹的函数调用这是函数的最通常用法,属于全局性调用,因此this就代表全局对象Global。function test(){ this.x = 1; alert(this.x);}test(); // 1// 为了证明this就是全局对象,对代码做一些改变var x = 1;function test(){ alert(this.x);}test(); // 1// ... 阅读全文
摘要:
一什么是 ConsoleConsole 是用于显示 JS和 DOM 对象信息的单独窗口。并且向 JS 中注入1个 console 对象,使用该对象 可以输出信息到 Console 窗口中。二什么浏览器支持 Console很多人可能都知道 Chrome 和 FireFox(FireBug)中都支持 Console。而其他浏览器都支 持不好。比如 IE8 自带的开发工具虽然支持 Console,但功能比较单调,显示对象的时候都是显示 [Object,Object],而且不能点击查看对象里面的属性。IE6、IE7 虽然可以安装 Developer Toolbar,但也 不支持 console。Saf 阅读全文
摘要:
JavaScript eval() 函数定义和用法eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。将 字符串 转换成javascript命令执行(必须符合javascript语法规范,否则会出错)。语法eval(string)string 必需。要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句。返回值通过计算 string 得到的值(如果有的话)。说明该方法只接受原始字符串作为参数,如果 string 参数不是原始字符串,那么该方法将不作任何改变地返回。因此请不要为 eval() 函数传递 String 对象来作为参数。如果试图覆盖 阅读全文
摘要:
作用域是JavaScript最重要的概念之一,想要学好JavaScript就需要理解JavaScript作用域和作用域链的工作原理。今天这篇文章对JavaScript作用域和作用域链作简单的介绍,希望能帮助大家更好的学习JavaScript。JavaScript作用域任何程序设计语言都有作用域的概念,简单的说,作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期。在JavaScript中,变量的作用域有全局作用域和局部作用域两种。1. 全局作用域(Global Scope)在代码中任何地方都能访问到的对象拥有全局作用域,一般来说一下几种情形拥有全局作用域:(1)最外层函 阅读全文
摘要:
闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。 下面就是我的学习笔记,对于Javascript初学者应该是很有用的。一、变量的作用域要理解闭包,首先必须理解Javascript特殊的变量作用域。变量的作用域无非就是两种:全局变量和局部变量。Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。var n=999;function f1(){ alert(n);}f1(); // 999另一方面,在函数外部自然无法读取函数内的局部变量。function f1(){ var n=999;}aler... 阅读全文
摘要:
JS 数据类型转换 方法主要有三种转换函数、强制类型转换、利用js变量弱类型转换。1. 转换函数:js提供了parseInt()和parseFloat()两个转换函数。前者把值转换成整数,后者把值转换成浮点数。只有对String类型调用这些方法,这两个函数才能正确运行;对其他类型返回的都是NaN(Not a Number)。在判断字符串是否是数字值前,parseInt()和parseFloat()都会仔细分析该字符串。parseInt()方法首先查看位置0处的 字符,判断它是否是个有效数字;如果不是,该方法将返回NaN,不再继续执行其他操作。但如果该字符是有效数字,该方法将查看位置1处的字符, 阅读全文
摘要:
在函数运行时, 会先进行词法分析(预编译) 预编译做哪些工作?1:分析参数2:分析变量声明3:分析函数声明如何分析变量声明?答:对于var 声明的变量, 以var str = 'local'为例, 分为分析过程 和 执行过程.先分析, 后执行.先分析 var str; ,即仅仅声明一个str变量,str变量此时,没有赋值,值是undefined然后再进行 执行过程.var str = 'global'; function t() { /* alert(str); // undefined var str = 'local'; ale... 阅读全文
摘要:
先看下面的代码: var $ = KISSY.all; $(‘a’).on(‘click’,function(e){ doSomeThing();//这个方法貌似很有名 e.halt(); }); 上面的代码看起来像是很好的完成了我们交给它的工作,浏览器不会再将我们重定向到href中的链接,但这么做到底有什么不对呢? 在解释有什么不对前,我们来看看浏览器中事件中的几个概念 浏览器默认行为 当我们点击某一个链接的时候,浏览器会直接跳转,在表单中按回车,表单会自动提交,这些都是浏览器的默认行为。 Javascript事件传播的机制 什么是事件冒泡? 比如点击了一个按钮,这个... 阅读全文
摘要:
绑定事件addEventListener:W3C标准写法IE不兼容attachEvent:兼容IE注意:1:事件名不同:IE下要加“on“,W3C不加 2:加载事件的执行顺序不同,W3C按绑定事件的顺序来执行,而IE6,7是后绑定的时间先发生 3:this的指向,W3C中,绑定函数中的this指向DOM对象,而IE6,7指向WINDOWS对象var addEvent = function( obj, type, fn ) { if (obj.addEventListener) obj.addEventListener( type, fn, false ); else ... 阅读全文