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
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 最后一次说说闭包
- Ajax
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- Redux系列02:一个炒鸡简单的react+redux例子
- JavaScript 各种遍历方式详解
- call/apply/bind 的理解与实例分享