js学习1
js基础1:
js组成:
ECMAScript :解释器 、翻译 提供语言的基本功能
几乎没有兼容型问题
dom :document object model 有一些兼容型问题
bom :brower object model 几乎不兼容
变量类型:
number 、string 、boolean、undefined、object,function
查看变量类型 typeof()
var a;
都是undefined的两种情况:
1、不定义或者
2、a不赋值
变量类型由里面所存的值来决定的
符合类型:对象 不是一个基本的单元
基本类型:23,‘33’ true
数组是对象
var a = "333";
js数字类型转换为字符串 ''+a
input输入的默认都是字符串,所以两者要求和,要转换
数据类型转换:
字符串转换为数字:
parseInt();
parseInt('23sd') = 23
parseInt('sdf3') = NaN 不是一个数字
parseFloat()转换为小数
数字+NaN = NaN
如何检测NaN
不能用 == NaN来比较
isNaN(a)
隐式类型转换:
= == ===
== 先把两边转换为一样的类型再转换
‘12’ == 12 true
'12' === 1 false
var a = '12'
var b='5'
alert(a-b) = 7
- * /号会自动将其转换为数字
+ 1:可以做字符串连接
2:数字相加
变量作用域:
局部变量:某一个函数内定义的变量
全局变量:不定义再任何一个函数里面,可以在任何地方使用
全局变量是魔鬼,尽可能不要去使用
闭包:
相当于外函数和内函数
外函数定义的变量,子函数可以使用
你麻痹的,我还以为是什么厉害的东西
命名规范和必要性:
可读性---能看懂
规范性---符合规则
匈牙利命名法:
类型前缀 :fn o s b i re a v
函数 对象 字符串 布尔 整形 正则 数组 变体变量
首字母大写
运算符:
+ - * / %取模,求余
隔行变色
<script>
window.onload = function(){
var oUl1 = document.getElementById('ul1');
var oLi = oUl1.getElementsByTagName('li');
for(var i=0;i<oLi.length;i++)
{
if(i%2 == 0)
{
oLi[i].style.backgroundColor = "#ccc";
}
}
}
</script>
parseInt()也可以用来取整
赋值:= += /= *= %=
关系 > = >= <= == === !==
逻辑 && || !
运算符的优先级 :()
if switch ?:
a = a>b?a:b;
switch(a)
{
case '1':
{
}
break;
default:
break;
}
while for
break continue
真,true ,非零字符 非空对象
假;false 数字零 空字符串,空对象 浮点数0.0 undefined
json:
{name:'wang',age:'34'}
javascript object notation
for in 遍历json对象
var obj ={a:4,b:3,c:3}
for(attr in obj)
{
alert(obj[attr])
}