JavaScript组成

EcmaScript:核心部分 作为解释器。几乎没有兼容性问题

DOM:Document Object Model,操作HTML页面的入口。有些操作不兼容。

BOM:Browser Object Model,和浏览器相关的操作。完全不兼容。

变量类型

变量本身没有类型,取决于内部存储的是什么类型。

类型转换

强制转换:parseInt(),parseFloat()。

隐式类型转换:==比较,先转换类型再比较;减法运算,只用于数字相减,所以会先转换再计算。

变量作用域

局部变量,全局变量。

闭包

子函数可以使用父函数中的局部变量。

命名规范

匈牙利命名法:.类型前缀,.首字母大写。

Json

用于存储数据

例如:var json={a:12,b:5,c:'abc'};

取出数据:(json.a)或json['a']

json中没有length属性,循环遍历用for...in。

函数返回值

1.返回的是函数执行结果

2.可以没有return,返回undefined

3.一个函数只有一个返回值

arguments:参数个数是可变的

arguments是一个数组,有argumemts.length属性

取非行间样式

行间样式:例如

---->oDiv.style.width;

非行间:currentStyle

oDiv.currentStyle.width;只兼容IE,其他浏览器(包括IE9)用getComputedStyle(Odiv,anything,width);

封装成获取样式的函数

function getStyle(obj,name){
  if(obj.currentStyle)
  {
      return obj.currentStyle[name];
      }
      else
      {
       return getComputedStyle(obj,anything,name);
      }
}

获取复合样式,例如:background,需要具体到某一个单一样式,例如:background-color;

数组

定义:var a=[1,2,3];var a=new Array(1,2,3);

数组的方法:添加,push():向数组末尾添加一个值。

pop():在尾部删除一个值。

shift():从头部删除一个值。

unshift():从头部添加。

splice():数组的万能操作方法,splice(起点位置,长度):删除;splice(起点位置,0,“abc”):插入;splice(起点位置,长度,和长度同个数的新元素):替换。

contact():连接。

join('-'):用某个符号连接数组元素。

sort():排序

比较函数

arr.sort(function(n1,n2){
  return (n1-n2);
});

DOM

DOM节点

子节点:childNodes (表现不一)/children(不包含文本节点,只包含元素节点), 节点类型:nodeType,父节点:parentNode, offsetParent:原理同absolute定位父级。

首尾子节点:firstChild和lastChild(有兼容问题,在IE6-8下可用,其他用firstElementChild和lastElementChild);

兄弟节点:nextSibling和previousSibling(同上兼容问题,对应nextElementSibling和previousElementSibling)。

元素属性操作

第一种:ODiv.style.display="block";

第二种:oDiv.style['display']='block';

第三种:DOM方式:setAttribute('name','value');

用className选择元素

封装getByClass()函数

function getByClass(oParent,sClass){

var aResult=[];

var aEle=oParent.getElementsByTagName('*');

for (var i=0;i<aEle.length;i++)

{ if (aEle[i].className==sClass) {

aResult.push(aEle[i]);

}

}

return aResult;

}

DOM操作应用

创建DOM元素

createElement('li'),添加到父级下面:oUl.appendChild('oLi');

插入元素

insertBefore:同样在父级调用,区别是 父元素.insertBefore(子元素,在谁之前);

删除元素 父级.removeChild(子元素);

文档碎片 (基本不用了)

首先创建 oFrag=createDocumentFragment(); oFrag.appendChild(oLi); oUl.appenddChild(oFrag);



JavaScript笔记(一)的更多相关文章

  1. [Effective JavaScript 笔记] 第4条:原始类型优于封闭对象

    js有5种原始值类型:布尔值.数字.字符串.null和undefined. 用typeof检测一下: typeof true; //"boolean" typeof 2; //&q ...

  2. [Effective JavaScript 笔记] 第5条:避免对混合类型使用==运算符

    “1.0e0”=={valueOf:function(){return true;}} 是值是多少? 这两个完全不同的值使用==运算符是相等的.为什么呢?请看<[Effective JavaSc ...

  3. [Effective JavaScript 笔记]第3章:使用函数--个人总结

    前言 这一章把平时会用到,但不会深究的知识点,分开细化地讲解了.里面很多内容在高3等基础内容里,也有很多讲到.但由于本身书籍的篇幅较大,很容易忽视对应的小知识点.这章里的许多小提示都很有帮助,特别是在 ...

  4. [Effective JavaScript 笔记]第27条:使用闭包而不是字符串来封装代码

    函数是一种将代码作为数据结构存储的便利方式,代码之后可以被执行.这使得富有表现力的高阶函数抽象如map和forEach成为可能.它也是js异步I/O方法的核心.与此同时,也可以将代码表示为字符串的形式 ...

  5. [Effective JavaScript 笔记]第28条:不要信赖函数对象的toString方法

    js函数有一个非凡的特性,即将其源代码重现为字符串的能力. (function(x){ return x+1 }).toString();//"function (x){ return x+ ...

  6. 从头开始学JavaScript 笔记(一)——基础中的基础

    原文:从头开始学JavaScript 笔记(一)--基础中的基础 概要:javascript的组成. 各个组成部分的作用 . 一.javascript的组成   javascript   ECMASc ...

  7. 【原】javascript笔记之Array方法forEach&map&filter&some&every&reduce&reduceRight

    做前端有多年了,看过不少技术文章,学了新的技术,但更新迭代快的大前端,庞大的知识库,很多学过就忘记了,特别在项目紧急的条件下,哪怕心中隐隐约约有学过一个方法,但会下意识的使用旧的方法去解决,多年前ES ...

  8. JavaScript笔记目录

    JavaScript笔记目录 一.JavaScript简介 二.在HTML中使用JavaScript ...持续更新中,敬请期待

  9. 蛋糕仙人的javascript笔记

    蛋糕仙人的javascript笔记:https://www.w3cschool.cn/kesyi/kesyi-nqej24rv.html

  10. JavaScript笔记(第一章,第二章)

    JavaScript笔记(第一章,第二章) 第一章: <meta http-equiv="Content-Type" content="text/html; cha ...

随机推荐

  1. Aggregating local features for Image Retrieval

    Josef和Andrew在2003年的ICCV上发表的论文[10]中,将文档检索的方法借鉴到了视频中的对象检测中.他们首先将图像的特征描述类比成单词,并建立了基于SIFT特征的vusual word ...

  2. mmc线性0-1规划问题

    本题目来自物理学苑,原作者认为mmc不容易解决0-1规划. 5个人选4个,组队游泳接力比赛,最好成绩组队. 其实,mmc解决此类问题,还是很方便,轻松的. 下面是原题目的求解:

  3. Java中的DeskTop类

        在Jdk1.6以后新增加了一个类--DeskTop,在JDK中它的解释是这样的: The Desktop class allows a Java application to launch a ...

  4. HDU 4279 - Number

    2012年天津赛区网赛的题目,想了好久,也没能想出来 还是小杰思路敏捷,给我讲解了一番,才让我把这个题做出来 f(x)=x-phi(x)(1——x与x互素个数)-g(x)(x的因子个数)+1 其中g( ...

  5. C. Guess Your Way Out!

    C. Guess Your Way Out!                                                               time limit per ...

  6. JavaFX(三)窗口拖动

    1.问题场景 在上一篇中,我们将窗口的默认标题栏隐藏从而导致鼠标点击窗体无法进行拖动. 2.解决思路 给组件添加鼠标按下事件监听器和鼠标拖动事件监听器. 3.代码实现 代码片段: private do ...

  7. C++/CLR Sqlite初探

        error C2491: "acosh": 不允许 dllimport 函数 的定义     asinh": 不允许 dllimport 函数 的定义     a ...

  8. 关于错位动画的练习,原生js编写

    最近在网上看到一个关于错位动画的文章,感觉非常有趣,便自己练习了一下,文章连接:http://www.w3cplus.com/animation/staggering-animations.html ...

  9. Android入门:一、Android Studio 2.1安装及初始化配置

    以前研究过eclipse +ADT开发android app,没深入再加上工作也用不上就扔在那,现在需要做APP开发,发现eclipse +ADT也不再更新了,google推出了功能强大的Androi ...

  10. poj 2723 2-SAT问题

    思路:二分枚举能开的门的数量,将每次枚举转换成2-SAT问题.这里存在的矛盾是假设有门上a,b两个锁,a锁对应于1号钥匙,而一号钥匙的配对是2号钥匙,b锁对应于3号钥匙,3号的配对是4号钥匙.那么2号 ...