JavaScript笔记(一)
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属性
取非行间样式
行间样式:例如
非行间: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笔记(一)的更多相关文章
- [Effective JavaScript 笔记] 第4条:原始类型优于封闭对象
js有5种原始值类型:布尔值.数字.字符串.null和undefined. 用typeof检测一下: typeof true; //"boolean" typeof 2; //&q ...
- [Effective JavaScript 笔记] 第5条:避免对混合类型使用==运算符
“1.0e0”=={valueOf:function(){return true;}} 是值是多少? 这两个完全不同的值使用==运算符是相等的.为什么呢?请看<[Effective JavaSc ...
- [Effective JavaScript 笔记]第3章:使用函数--个人总结
前言 这一章把平时会用到,但不会深究的知识点,分开细化地讲解了.里面很多内容在高3等基础内容里,也有很多讲到.但由于本身书籍的篇幅较大,很容易忽视对应的小知识点.这章里的许多小提示都很有帮助,特别是在 ...
- [Effective JavaScript 笔记]第27条:使用闭包而不是字符串来封装代码
函数是一种将代码作为数据结构存储的便利方式,代码之后可以被执行.这使得富有表现力的高阶函数抽象如map和forEach成为可能.它也是js异步I/O方法的核心.与此同时,也可以将代码表示为字符串的形式 ...
- [Effective JavaScript 笔记]第28条:不要信赖函数对象的toString方法
js函数有一个非凡的特性,即将其源代码重现为字符串的能力. (function(x){ return x+1 }).toString();//"function (x){ return x+ ...
- 从头开始学JavaScript 笔记(一)——基础中的基础
原文:从头开始学JavaScript 笔记(一)--基础中的基础 概要:javascript的组成. 各个组成部分的作用 . 一.javascript的组成 javascript ECMASc ...
- 【原】javascript笔记之Array方法forEach&map&filter&some&every&reduce&reduceRight
做前端有多年了,看过不少技术文章,学了新的技术,但更新迭代快的大前端,庞大的知识库,很多学过就忘记了,特别在项目紧急的条件下,哪怕心中隐隐约约有学过一个方法,但会下意识的使用旧的方法去解决,多年前ES ...
- JavaScript笔记目录
JavaScript笔记目录 一.JavaScript简介 二.在HTML中使用JavaScript ...持续更新中,敬请期待
- 蛋糕仙人的javascript笔记
蛋糕仙人的javascript笔记:https://www.w3cschool.cn/kesyi/kesyi-nqej24rv.html
- JavaScript笔记(第一章,第二章)
JavaScript笔记(第一章,第二章) 第一章: <meta http-equiv="Content-Type" content="text/html; cha ...
随机推荐
- 10+ commonly using find command switches with example Unix/Linux
http://crybit.com/find-command-usage-with-example-unixlinux/ find command is one of the best search ...
- Helpers\Pagination
Helpers\Pagination Break recordset into a series of pages. First create a new instance of the class ...
- Android进阶笔记15:ListView篇之图片优化
1.图片异步加载: (1)处理图片的方式: 如果ListView中自定义的Item中有涉及到大量图片的,一定要对图片进行细心的处理,因为图片占的内存是 ListView 项中最头疼的,处理图片的方法大 ...
- Android(java)学习笔记77:网络编程的概述
计算机网络 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统. 网络编程 就 ...
- I2C驱动程序
i2c_add_driver i2c_register_driver driver->driver.bus = &i2c_bus_type; driver_register(&d ...
- 物理CPU、物理核跟逻辑核的区分
一般来说,物理CPU个数×每颗核数就应该等于逻辑CPU的个数,如果不相等的话,则表示服务器的CPU支持超线程技术 ,所以您的电脑是双核的. 一 概念① 物理CPU 实际Server中插槽上的CPU个数 ...
- CF Two Buttons (BFS)
Two Buttons time limit per test 2 seconds memory limit per test 256 megabytes input standard input o ...
- poj 1185 炮兵阵地 状态压缩dp
思路:定义一个三维数组dp[x][i][j]其中x为now和pre两种状态,now表示当前两行最优解,pre表示出了本行外,前两行的最优解.那么状态转移方程为 dp[now][j][k]=max(dp ...
- 2013 南京理工大学邀请赛B题
思路: 每次枚举删除一个点,然后对剩下的点求出关键点,判断删除哪个关键点获得的连通分支数最大. #include<iostream> #include<cstdio> #inc ...
- cent0s7 显卡驱动导致重启黑屏
由于 CentOS7.0 版本与前面的 CentOS6.5 及之前的版本的模式变更方法有很大 的不同,以前的版本中我们可以在vi /etc/inittab 文件中将id:5:initdefault 更 ...