Pro JavaScript Techniques学习笔记

全局变量是Window对象属性的一部分,例子:


代码如下:

var test = 'test';
alert(window.test);

浏览器渲染和操作HTML的大致顺序:

HTML解析完毕
外部脚本和样式表加载完毕
脚本在文档内解析并执行
HTML DOM完全构造起来
图片和外部内容加载
网页完成加载
所有的主流浏览器都实现了innerHTML属性,但是因为没有统一标准,所以或多或少会有一些怪异的bug。

基于Mozilla的浏览器在innerHTML声明中并不回会返回<style>元素;
IE返回的元素字符都是大写的;
innerHTML作为一个只能用在HTML DOM文档的元素中的属性,若在XML DOM文档中使用的话只会返回null值。
检查元素是否有用一个指定的属性:

代码如下:

function hasAttribute(elem, name) {
return elem.getAttribute(name) != null;
};

JavaScript事件在两个阶段中执行:捕获和冒泡。

GET请求不应具有破坏性的副作用(比如删除一条消息)。

点击、鼠标悬停和鼠标离开事件的任何场合下,都要考虑提供非鼠标绑定的可选事件。


代码如下:

onmouseout –> onblur
onmousedown –> onkeydown
onmouseup –> onkeyup
onclick –> onkeypress
onmouseover –> onfocus

eg.

代码如下:

var ax = document.getElementsByTagName('a');
for (var i = 0; i < ax.length; i++) {
ax[i].onmouseover = ax[i].onfocus = function(){
this.style.backgroundColor = 'blue';
};
ax[i].onmouseout = ax[i].onblur = function(){
this.style.backgroundColor = 'white';
};
};

静态定位:这是元素定位的默认方式,它简单地遵循文档的普通流动(flow)。当元素是静态定位时,top和left属性无效。

position:static;top:0px;left:0px;
相对定位:这种定位形式与静态定位非常相似,因为元素会继续遵循文档的普通流动,除非受到其他指定的影响。但是,设置top或者left属性会引起元素相对于它的原始(静态)位置进行偏移。

position:relative;top:-50px;left:50px;
绝对定位:绝对定位的元素完全跳出页面布局的普通流动,它会相对于它的第一个非静态定位的祖先元素而展示。如果没有这样的祖先元素,则相对于整个文档。

position:absolute;top:20px;left:0px;
固定定位:固定定位把元素相对于浏览器窗口而定位。设置元素的top和left为0会使它显示在浏览器左上角,它完全忽略浏览器滚动条的拖动,一直会出现在用户的视野。

position:fixed;top:20px;left:0px;
开发预留退路(degrading gracefully):为页面增加任何形式的动态交互都有疏远某部分用户的潜在可能。应该时刻在意的是,当JavaScript或者CSS禁用的时候,Web应用程序应该具备基最基本可用性。

(0)

相关推荐

  • Pro JavaScript Techniques学习笔记

    全局变量是Window对象属性的一部分,例子: 复制代码 代码如下: var test = 'test'; alert(window.test); 浏览器渲染和操作HTML的大致顺序: HTML解析完毕 外部脚本和样式表加载完毕 脚本在文档内解析并执行 HTML DOM完全构造起来 图片和外部内容加载 网页完成加载 所有的主流浏览器都实现了innerHTML属性,但是因为没有统一标准,所以或多或少会有一些怪异的bug. 基于Mozilla的浏览器在innerHTML声明中并不回会返回<style

  • JavaScript继承学习笔记【新手必看】

    JavaScript作为一个面向对象语言(JS是基于对象的),可以实现继承是必不可少的,但是由于本身并没有类的概念,所以不会像真正的面向对象编程语言通过类实现继承,但可以通过其他方法实现继承.实现继承的方法很多,下面就只是其中的几种. 一. 原型链继承 function Person() { //被继承的函数叫做超类型(父类,基类) this.name='mumu'; this.age='18'; } Person.prototype.name='susu';//当属性名相同时需就近原则,先在实

  • Javascript基础学习笔记(菜鸟必看篇)

    什么是变量? 变量是用于存储信息的容器 变量的声明 语法: var 变量名 变量名 = 值; 变量要先声明再赋值 变量可以重复赋值 变量的命名规则 变量必须以字母开头: 变量也能以$和_符号开头(不过我们不推荐这么做): 变量名称对大小写敏感(a和A是不同的变量). 语句 语句以一个分号结尾:如果省略分号,则由解析器确定语句的结尾. 有个好的编码习惯,都要以 ; 结尾 数据类型 在JavaScript中,一段信息就是一个值(value).值有不同的类型,大家最熟悉的类型是数字.字符串(strin

  • 整理Javascript函数学习笔记

    1.什么是函数 如果需要多次使用同一段代码,可以把它们封装成一个函数.函数(function)就是一组允许在你的代码里随时调用的语句.每个函数实际上是一个短小的脚本. 如:要完成多组数和的功能. var sum; sum = 3+2; alear(sum); sum = 7+8; alear(sum); ......//不停的重复两行代码 如果要实现8组数的和,就需要16行代码,实现的越多,代码行也就越多.所以我们可以把完成特定功能的代码块放到一个函数里,直接调用这个函数,就省去重复输入大量代码

  • JavaScript数据类型学习笔记分享

    本文实例为大家讲解JavaScript数据类型的相关资料,供大家参考,具体内容如下 1.引用类型 引用类型的值是引用类型的一个实例,引用类型是一种数据结构,用于将数据和功能组织在一起,也常被叫做类. 对象时某个特定引用类型的实例,新对象是使用new操作符后跟一个构造函数来创建的,构造函数本身就是函数,是出于创建新对象的目的而定义的. var person = new Object(); 2.Object类型 (1)Object类型对于应用程序中存储和传输数据来说,是非常理想的选择. (2)Obj

  • JavaScript数据类型学习笔记

    ECMAscript 中有5种简单的数据类型,也被称为基本数据类型:Undefined.Null.Boolean.Number和String.还有一种复杂的数据类型--Object. Undefined 类型 在使用var 声明变量但未对其进行初始化时,这个变量的值就是undefined.如: var number; document.write(number); //undefined 如果没有声明变量则会出现下面这种错误.如: document.write(str); //错误 但是用typ

  • 整理Javascript数组学习笔记

    1.什么是数组 数组是一个值的集合,每个值都有一个索引号,从0开始,每个索引都有一个相应的值,根据需要添加更多数值. <script type="text/javascript"> var myarr=new Array(); //定义数组 myarr[0]=80; myarr[1]=60; myarr[2]=99; document.write("第一个人的成绩是:"+myarr[0]); document.write("第二个人的成绩是:&

  • 比较详细的javascript DOM 学习笔记第1/2页

    一.DOM基础1.节点(node)层次Document--最顶层的节点,所有的其他节点都是附属于它的.DocumentType--DTD引用(使用<!DOCTYPE>语法)的对象表现形式,它不能包含子节点.DocumentFragment--可以像Document一样来保存其他节点.Element--表示起始标签和结束标签之间的内容,例如<tag></tab>或者<tag/>.这是唯一可以同时包含特性和子节点的节点类型.Attr--代表一对特性名和特性值.这

  • javascript高级学习笔记整理

    一.js面向对象的一种实现 复制代码 代码如下: <script type="text/javascript"> function Person() { this.name = "张三"; this.age = 0; var nickName = "小三"; //类似私有变量,函数中的局部变量在函数执行完后自动销毁. this.SayHi = function () { alert("我的名字是" + this.n

  • Javascript学习笔记9 prototype封装继承

    好,那就让我们一步步打造,首先让我们来看下继承原本的写法: 复制代码 代码如下: <script> var Person = function(name, age) { this.name = name; this.age = age; } Person.prototype.SayHello = function () { alert(this.name + "," + this.age); }; var Programmer = function (name, age,

随机推荐