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)浏览器对象模型。

  包括:windowtiminghistorylocationscreen

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) 基本特性的更多相关文章

  1. [JS] JavaScript由浅入深(2) 进阶

    本节,将围绕以下几点来讲. 知识点:多线程.作用域.闭包.this 先顶后看 1.多线程 在不支持H5的浏览器中.使用Concurrent.Thread.js. 在支持H5中,使用WebWork. 在 ...

  2. Atitit.js模块化 atiImport 的新特性javascript import

    Atitit.js模块化 atiImport 的新特性javascript import 1. 常见的js import规范amd ,cmd ,umd1 1.1. Require更多流行3 2. at ...

  3. Atitit js版本es5 es6新特性

    Atitit js版本es5 es6新特性 Es5( es5 其实就是adobe action script的标准化)1 es6新特性1 Es5( es5 其实就是adobe action scrip ...

  4. 运用javascript的成员访问特性来实现通用版的兼容所有浏览器的打开对话框功能

    打开网页对话框,一般有三种方法:window.open.window.showModalDialog.window.showModelessDialog,每一种都有它的优点与不足.第一种方法:wind ...

  5. atitit.js 各版本 and 新特性跟浏览器支持报告

    atitit.js 各版本 and 新特性跟浏览器支持报告 一个完整的JavaScript实现是由以下3个不同部分组成的 •核心(ECMAScript)--JavaScript的核心ECMAScrip ...

  6. Asm.js: Javascript的编译目标

    正如许多开发者一样,我也为Asm.js的前景而感到兴奋不已.最近的新闻——Asm.js正 在被Firefox支持——引起了我的兴趣.同样感兴趣的还有Mozilla和Epic声明(mirror)他们已经 ...

  7. 理解Javascript的动态语言特性

    原文:理解Javascript的动态语言特性 理解Javascript的动态语言特性 Javascript是一种解释性语言,而并非编译性,它不能编译成二进制文件. 理解动态执行与闭包的概念 动态执行: ...

  8. JavaScript面向对象的三大特性

    1.JavaScript面向对象的三大特性 JavaScript的三大特性:封装性.继承性.多态性. 2.JavaScript实现封装特性 在一些静态类型的语言如java中,本身语法就提供了这些功能. ...

  9. js中对象的一些特性,JSON,scroll家族

    一.js中对象的一些特性 对象的动态特性 1.当对象有这个属性时,会对属性的值重写 2.当对象没有这个属性时,会为对象创建一个新属性,并赋值 获得对象的属性的方式 为元素设置DOM0级事件 二.JSO ...

随机推荐

  1. mysql触发器_begin end 执行多次语句

    //多SQL中导出的触发器语句: DROP TRIGGER IF EXISTS `t_trig`; DELIMITER // CREATE TRIGGER `t_trig` BEFORE INSERT ...

  2. IE8以下版本iframe出现滚动条和内容空白问题

    在网页中使用iframe引用了第三方的页面 $("#tianqi").html('<iframesrc="http://i.tianqi.com/index.php ...

  3. 每日英语:A Whiff Of 'Welcome Home'

    Buying real estate involves weighing a lot of factors: location, price . . . smell? Some condo devel ...

  4. mysql性能监控工具:mycheckpoint的使用方法

    mycheckpoint 是针对mysql的一个性能监控.指标采集的python写成的工具. 工作原理说明: mycheckpoint是一段脚本,通过将其设置为crontab定时任务,每几分钟采集一次 ...

  5. 【原创】从零开始学SpagoBI5.X源码汉化编译

    从零开始学SpagoBI5.X源码汉化编译 一.新建Tomact Server 服务器并配置测试1.文件-新建-其他-过滤server-服务类型选择Tomact V7.0 Server2.根据需要修改 ...

  6. CSS3学习笔记--transform基于原始数据(旋转木马实例)

    参考链接:好吧,CSS3 3D transform变换,不过如此! transform-style:preserve-3d属性要在图片所在的容器(父元素)中定义,perspective定义在父子元素上 ...

  7. JRE_HOME environment variable is not defined correctly This environment variableis needed to run this program

    已经安装了JDK1.7 和对应JRE 安装了tomcat8 都是解压版 并设置了JAVA_HOME.JRE_HOME 但Tomcat在启动过程中找不到 错误: the JRE_HOME environ ...

  8. struts2:struts.xml配置文件详解

    1. 几个重要的元素 1.1 package元素 package元素用来配置包.在Struts2框架中,包是一个独立的单位,通过name属性来唯一标识包.还可以通过extends属性让一个包继承另一个 ...

  9. java中的==和equals

    1,==用于比较基本数据类型,和引用类型.而equals是Object上的方法,可以被子类重写,用于判断内容一致. 比较奇葩的是,java基本数据类型(byte,short,int,long,floa ...

  10. Python测试基础教程

    Python简明教程1-为什么 Pythonhttp://www.automationqa.com/forum.php?mod=viewthread&tid=3674&fromuid= ...