JavaScript基础
JavaScript组成
ECMAScript:解释器,翻译
DOM:Document Object Model
BOM:Browser Object Model
各组成部分兼容性,兼容性由来
ECMAScript:翻译 解释器(JavaScript核心)
DOM:Document Object Model(文档对象模型)
对象:HTML
DOM实际上赋予了操作HTML的能力
BOM:Browser Object Model(浏览器对象模型)
对象:window
BOM实际上赋予了对window操作的能力
各组成部分兼容性,兼容性由来
ECMA 几乎没有兼容性问题
DOM 有一些操作不兼容
BOM 没有兼容问题(完全不兼容,几乎不去用)
变量类型(1)
var a = 12; //一个数字变量
var b = "awsdasd"; //一个字符串变量
var c = true; //一个布尔变量
var d = function(); //一个函数变量
var e = document; //一个对象变量
直接看到变量类型
alert(typeof a);//返回number,表示变量存了一个数字
alert(typeof b);//返回string,表示变量存了一个字符串
alert(typeof c);//返回boolean,表示变量存了一个布尔值
alert(typeof d);//返回function,表示变量存了一个函数
alert(typeof e);//返回object,表示变量存了一个对象
alert(typeof x);//返回undefined,表示未定义变量
*变量本身没有类型,它的类型取自于变量里存的内容。一个变量应该只存放一种类型的值
变量类型转换
/*显式类型转换(强制类型转换)*/
var a = '12';
var b = '3.4';
alert(parseInt(a)); //字符转数字,从左到右扫描,一旦扫描到不是数字的字符则立即返回。没有数字时返回NaN(Not a Number)
alert(parseFloat(a)); //字符转小数,如果不知道转换的数字是整数还是小数,就直接用parseFloat
JS中有个特性,NaN != NaN
alert(isNaN(a)); //检测结果是否是数字,返回true或false
/*隐式类型转换*/
/*例1*/
var a = 5;
var b = '5';
alert(a==b); //返回true,先把a和b都转换成相同的类型,再进行比较
alert(a===b); //返回false,不转换类型直接比较
/*例2*/
var a = '12';
var b = '5';
alert(a+b); //返回125,字符串连接(+可做数字相加和字符串连接,计算机选择轻松的字符串相加)
alert(a-b); //返回7,自动转换后进行减法(-只有数字相减功能)
变量作用域和闭包
作用域
var a; //全局变量
function aa(){
a=12;
b=12; //局部变量
}
function bb(){
alert(a);
}
闭包
简单来说就是函数嵌套,父函数可以使用子函数。
命名规范(1)
-
命名规范及必要性
- 可读性
- 规范性
-
匈牙利命名法
- 类型前缀
- 首字母大写
javascript 变量命名类型 | 变量命名前缀 |
---|---|
array 数组 | a |
boolean 布尔值 | b |
float 浮点数 | l |
function 函数 | fn |
int 整型 | i |
object 对象 | o |
regular 正则 | r |
string 字符串 | s |
运算符
算数:+, - , * , / , %取模
赋值:= , += , -= , *= , /= , %=
关系:< , > , <= , >= , == , === , != , !==
逻辑:&& , || , !
运算符优先级:括号
- %取模实例:隔行变色:
window.onload=function()
{
var aLi=document.getElementsByTagName('li');
for(var i=0;i<aLi.length;i++)
{
if(i%2==0)
{
aLi[i].style.background='#CCC';
}
else
{
aLi[i].style.background='';
}
}
}
- %取模实例:秒转时间:
var s=368
alert(parseInt(s/60) + '分'+ s%60 + '秒') //6分8秒
程序流程控制
判断:if,switch,?:(三目运算符)
循环:while,for
跳出:break(打破,中断整个循环),continue(中断本次循环,继续)
真假:true(非零整数,非空字符串,非空对象),false(数字零,空字符串,空对象,undefined)
Json
什么是Json?
JSON它是基于JavaScript的一个子集,用于描述JS里面的数据
Json和数组
Json的下标是个字符串,数组的下标是个数字
Json和for in
Json循环的话不能像数组那样取数组长度进行循环,而for in循环能够解决Json的下标问题