[JS] JavaScript由浅入深(1) 基本特性
1.全局变量的特性:
在函数体内直接写的变量(未用var标志)自动升级为全局变量。
(function func() {
i = 100;
}());
alert(i);
非常不建议不写var.
var num = 1;
(function func() {
i = 100;
}());
delete i;
delete num;
if (typeof i != "undefined") alert(i);
if (typeof num != "undefined") alert(num);
2.DOM操作
a.什么是DOM(Document Object Model),文档对象模型。包括元素节点,文本节点,属性节点和注释节点。
b.DOM操作:
HTML:write(),innerHTML,innerText,getElementById()
CSS:
<div>text</div>
<script>
var e = document.getElementsByTagName('div')[0];
e.style.background = 'blue';
</script>
Event:事件有4种添加方式。
所有事件:事件
3.异常:
try {
throw 'exception happend';
} catch (e) {
alert(e);
}
4.类型:
JS中5种基本类型:string number boolean undefined null 和一个复杂类型:object
注意:
typeof null 是object。
因为null类型只有一个值null,null即代表一个类型,又代表一个空对象的指针。
因为undefined类型只有一个值undefined,undefined代表一个类型,又代表一个未定义的变量.

typeof Object 是function
Object Function String都是构造函数。(推荐以后构造函数名Pascal命名,方法Camel命名)
5.内置对象
JS中有7个Number String Date Array Boolean Math RegExp默认构造函数。通过new关键字,可以定义对应的对象。
注意:
prototype是用来向对象添加属性和方法。
constructor是指向函数本身的指针。
6.事件
事件流:
事件流是指在页面中接受事件的顺序。
事件冒泡指从最具体的节点到最不具体的节点,事件捕获和事件冒泡完全相反。
事件对象:
触发DOM事件时,会产生事件对象。
type:事件类型 target:相当于sender stopPropagation():阻止事件冒泡 preventDefault():阻止事件默认行为(如:a标签默认点击跳转事件)
添加事件:
addEventListener(事件名,函数,是否冒泡)
attachEvent(on事件名,函数)
on事件 = 函数
a.直接在html上
<div onclick="func()">text</div>
<script>
function func() {
//todo
}
</script>
b.DOM0级处理
<div >text</div>
<script>
var e = document.getElementsByTagName('div')[0];
e.onclick = func;
function func() {
//todo
}
</script>
c.DOM2级处理
<div >text</div>
<script>
var e = document.getElementsByTagName('div')[0];
e.addEventListener('click', func);
function func() {
//todo
}
</script>
d.IE8以下
<div >text</div>
<script>
var e = document.getElementsByTagName('div')[0];
a.attachEvent('onclick', func);
function func() {
//todo
}
</script>
7.BOM
BOM(BrowserObjectModel)浏览器对象模型。
包括:window,timing,history,location,screen
window:
window对象代表浏览器窗口。DOM节点属于window对象的一个属性。所有的全局变量自动成为window对象的一个属性。
timing:
<div>text</div>
<div>text</div>
<script>
setInterval(function () {
var e = getDivs()[0];
e.innerHTML = new Date().toLocaleString();
}, 500); setTimeout(function() {
var e = getDivs()[1];
e.innerHTML = new Date().toLocaleString();
}, 500); function getDivs() {
return document.getElementsByTagName('div');
}
</script>
8.DOM控制HTML:
增:document.createElement(tagName);
删:element.removeChild(element);
改:element.setAttribute(attrName, attrValue);
查:
document.getElementById(elementId); element.parentNode; element.childNodes;
document.getAttribute(attrName);
9.prototype(原型)
除了基本类型外,都有prototype属性。
prototype(包括原型链)中的属性会直接继承到对象上。
10.call和apply
当用call和apply调用方法时,方法中的this可以由我们指定。
function func(a, b) {
this.sum = a + b;
return this;
}
var o1 = {};
var o2 = {};
func.call(o1, 3, 5);
func.apply(o2, [3, 4]);
alert(o1.sum);
alert(o2.sum);
时间:
GMT(Greenwich Mean Time)——格林尼治标准时间,世界基准时间
UTC 这几个字母是英文Coordinated Universal Time 和法语Temp UniverselleCoordinee 的混合体。世界时。原子时。
[JS] JavaScript由浅入深(1) 基本特性的更多相关文章
- [JS] JavaScript由浅入深(2) 进阶
本节,将围绕以下几点来讲. 知识点:多线程.作用域.闭包.this 先顶后看 1.多线程 在不支持H5的浏览器中.使用Concurrent.Thread.js. 在支持H5中,使用WebWork. 在 ...
- Atitit.js模块化 atiImport 的新特性javascript import
Atitit.js模块化 atiImport 的新特性javascript import 1. 常见的js import规范amd ,cmd ,umd1 1.1. Require更多流行3 2. at ...
- Atitit js版本es5 es6新特性
Atitit js版本es5 es6新特性 Es5( es5 其实就是adobe action script的标准化)1 es6新特性1 Es5( es5 其实就是adobe action scrip ...
- 运用javascript的成员访问特性来实现通用版的兼容所有浏览器的打开对话框功能
打开网页对话框,一般有三种方法:window.open.window.showModalDialog.window.showModelessDialog,每一种都有它的优点与不足.第一种方法:wind ...
- atitit.js 各版本 and 新特性跟浏览器支持报告
atitit.js 各版本 and 新特性跟浏览器支持报告 一个完整的JavaScript实现是由以下3个不同部分组成的 •核心(ECMAScript)--JavaScript的核心ECMAScrip ...
- Asm.js: Javascript的编译目标
正如许多开发者一样,我也为Asm.js的前景而感到兴奋不已.最近的新闻——Asm.js正 在被Firefox支持——引起了我的兴趣.同样感兴趣的还有Mozilla和Epic声明(mirror)他们已经 ...
- 理解Javascript的动态语言特性
原文:理解Javascript的动态语言特性 理解Javascript的动态语言特性 Javascript是一种解释性语言,而并非编译性,它不能编译成二进制文件. 理解动态执行与闭包的概念 动态执行: ...
- JavaScript面向对象的三大特性
1.JavaScript面向对象的三大特性 JavaScript的三大特性:封装性.继承性.多态性. 2.JavaScript实现封装特性 在一些静态类型的语言如java中,本身语法就提供了这些功能. ...
- js中对象的一些特性,JSON,scroll家族
一.js中对象的一些特性 对象的动态特性 1.当对象有这个属性时,会对属性的值重写 2.当对象没有这个属性时,会为对象创建一个新属性,并赋值 获得对象的属性的方式 为元素设置DOM0级事件 二.JSO ...
随机推荐
- VB中WinSock控件的属性、方法、事件及应用
一.WinSock简介 Socket(套接字)最初是由加利福尼亚大学Berkeley(伯克利)分校为UNIX操作系统开发的网络通信接口,随着UNIX的广泛使用,Socket成为当前最流行的 ...
- 用Word收集网页中的内容,用文档结构图整理
如何用Word保存网页中的内容 网页中的内容,用什么保存好? 用笔记类软件是个不错的选择,还可以用 Word 保存,这样方便用“文档结构图”来整理网页. 如图:网页收集后用文档结构图进行整理. (图一 ...
- ios开发中的C语言学习—— 结构体简介
在开发过程中,经常会需要处理一组不同类型的数据,比如学生的个人信息,由姓名.年龄.性别.身高等组成,因为这些数据是由不同数据类型组成的,因此不能用数组表示,对于不同数据类型的一组数据,可以采用结构体来 ...
- 迁移SQL SERVER 数据库实例
由于某些原因,需要将2个数据库实例合并为1个,也就是说要把其中的一台迁移到另外一台上面. 背景介绍 :下面的B,C代表2个实例,要把B中相关东西迁移到C实例上面.其中B上面有一部分的同步是从另外一台服 ...
- jeos没有消亡,但看 debian 的 netinst .iso格式,那就是jeos的系统!
曾经ubuntu推出专供轻量硬件(如虚拟机)方式的just os格式的.iso [小巧.轻量.快速.干净] 但在 ubuntu 8.04后 再也没有继续 ...... 可惜 不曾想,ubuntu的老爸 ...
- 操作系统性能分析与优化V1.0
操作系统性能分析与优化V1.0 : http://www.docin.com/p-759561760.html
- 所有博客已经迁移到个人空间 blog.scjia.cc
所有博客已经迁移到个人空间 blog.scjia.cc
- 网友对twisted deferr的理解
事實上Deferred的確就像是一連串的動作,用callback的形式被串在一起,我們用deferred或許可以這樣寫 d.addCallback(洗菜)d.addCallback(切菜)d.addC ...
- WinFrom 登录窗体 密码保存效果
WinFrom 登录窗体 保存密码效果 开发CS程序的程序员都会遇到 今天突然想把这个功能加到我的项目中 之后总结下 不多说 上图 如果关闭程序 下次在登录的时候 用户名.密码会自动保留下来 一 ...
- java之对象转型
对象转型(casting) 1.一个基类的引用类型变量可以“指向”其子类的对象. 2.一个基类的引用不可以访问其子类对象新增加的成员(属性和方法). 3.可以使用 引用变量 instanceof 类名 ...