您的位置:首页 > Web前端 > JavaScript

JS笔记

2016-06-28 15:09 447 查看

概述:

JavaScript组成:

ECMAScript:解释器,翻译

DOM:DocumentObject Model

BOM:Browser Object Model

各组成部分的兼容性,兼容性问题由来。

变量类型

数据类型转换

约定:一个变量应该只存储一种类型的数据

变量作用域 闭包

命名规范

可读性,规范性

匈牙利命名法(类型前缀,首字母大写)

运算符

算数

赋值

关系

逻辑

优先级

程序流程控制

判断

循环

跳出

真&假(什么是真值,什么是假值)

Json

Json是什么

Json和数组

Json和for in

%求模的应用

隔行变色:

for(var i=0;i<aLi.length;i++){
if(i%2==0){
aLi[i].style.background='';
}else{
aLi[i].style.background='';
}
}


秒转时间

parseInt()-字符串转换为数字,取整。

Date()-Date对象

break和continue的区别

Json:一种轻量级数据交换格式,由键值对组成。

格式:

Json和数组的区别:

Json由大括号括起来{},数组由中括号括起来[]

Json的索引是字符串,数组的索引是数字。

Json没有length,数组有。

可以用for in使Json和数组循环取出全部值。

但最佳搭配是数组-for 0~length

Json-for in

for(var i in json){

alert('第'+i+json[i]);

}


函数返回值

(return):函数的执行结果

可以没有return。

一个函数应该只返回一种类型的值

函数传参

可变参(不定参):arguments

参数的个数可变,参数数组

例1.求和

function sum()
{
//arguments是一个数组
var result=0;

for(var i=0;i<arguments/length;i++){
result+=arguments[i];
}
return result;
}


例2.CSS函数

<script type="text/javascript">
function css(obj,name,value){
if (arguments.length==2) {
return obj.style[name];
}else{
obj.style[name]=value;
}
}
window.onload=function(){
css(oDiv,'background','green');
}

</script>


获取非行间样式(只获取,不能用来设置)

obj.style只能获取行间样式

obj.currentStyle可以获取非行间样式,只兼容IE,Chorme不兼容

getComputedStyle(obj,false).width;//不兼容IE7 兼容IE11 FF、opera、safari、chrome

JS第二定律:凡是好东西,都不兼容

兼容处理&&常用功能封装成函数

if(oDiv.currentStyle){

//IE

}else{

//FF

}


//只能取单一样式,不能取复合样式

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


复合样式(快捷,可以再分为很多样式)

单一样式(不可再分)

数组基础

定义
1.  var a=[1,2,3];
2.  var a=new Array[1,2,3];
作用完全一致,但1更优。


数组的属性

length
既可以获取,又可以设置
例:快速清空数组
数组使用原则:数组中应该只存一种类型的变量。


添加和删除
arr.push(element)//从尾部添加
arr.pop()//从尾部删除
arr.shift()//从头部删除
arr.unshift(element)//从头部添加

splice
var arr=[1,2,3,4,5,6];
//删除:splice(起点,长度)
//arr.splice(2,3);

//插入:splice(起点,长度,元素...);
//arr.splice(2,0,'a','b','c');

//删除+添加:替换
//arr.splice(2,2,'a','b');

数组连接 concat
arr1.concat(arr2);//arr1+arr2

join(分隔符)
用分隔符,组合数组元素,生成字符串
arr.join('-');//


题外话:如何把字符串切割成数组

split() 方法用于把一个字符串分割成字符串数组

语法

stringObject.split(separator,howmany)

参数

separator 必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。

howmany 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。

返回值

一个字符串数组。该数组是通过在 separator 指定的边界处将字符串 stringObject 分割成子串创建的。返回的数组中的字串不包括separator 自身。

但是,如果 separator 是包含子表达式的正则表达式,那么返回的数组中包括与这些子表达式匹配的字串(但不包括与整个正则表达式匹配的文本)。

提示和注释

注释:如果把空字符串 (“”) 用作 separator,那么 stringObject 中的每个字符之间都会被分割。

排序和转换

arr.sort();

解决数组sort只识别字符串的问题

arr.sort(function(n1,n2){

/*if(n1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript