1、数据类型
变量:变量本身是没有值,我们赋给它什么值它就是什么值
查看变量的类型:typeof 东西
function () {
var a = '我是谁';
alert(typeof a);
}
六种数据类型
number 数字
string 字符串
boolean 布尔型
object 对象
undefined 未定义
function 函数
*** null -> 空对象 -> object
基本的数据类型:
不可拆分成其他的数据类型
number
12:
6 + 6
string
'abc'
'a' + 'b' + 'c'
复合的数据类型:
object: 对象
var arr = [1,'abc',true,function(){alert(1)}];
可以拆出多种数据类型
变量和字符串的区别:
变量没有引号(')
字符换必须带上引号(')
*** 属性都是字符串
2、命名规范
匈牙利命名法:
a). 首字母大写
toChange
toWidth
系统:
getElementById
getelementbyid
b). 有类型的前缀
oDiv
aBtn
常见的类型前缀:
o-> object oDiv 一个元素,一个对象
a-> array aBtn 一组元素
i-> integer iCount 整数
f-> float fPrice 浮点数
s-> String sUserName 字符串
b-> boolean bOk 布尔型
fn-> function fnSucc 函数
re-> RegExp reEmail 正则
3、字符串转数字
三种显示转化
a. parseInt(字符串)
'12' -> 12
'12.5' -> 12
'12abc' -> 12
'abc' -> NaN
工作原理:从左往右开始找,遇到非数字就停止(包括小数点), 如果第一个就不是一个数字,就返回NaN
b). parseFloat(字符串)
'12' -> 12
'12.5' -> 12.5
'12abc' -> 12
'abc' -> NaN
工作原理:从左往右开始找,遇到非数字就停止(不包括小数点), 如果第一个就不是一个数字,就返回NaN
c). Number(字符串)
'12' -> 12
'12.5' -> 12.5
'12.5abc' -> NaN
'abc' -> NaN
既能处理整数,也能处理小数,但是格式要求严格(必须是数字), 如果不是数字就返回NaN
隐式转化
以下都会触发隐式转化
- * / > < >= <= ==
尽量避免隐式转化
关于NaN
NaN: Not a Number
不是一个数字
特性:
a). NaN跟任何东西都不相等,包括自己
NaN == NaN -> false
b). 数据类型是number
typeof NaN -> number
怎么判断一个东西是不是NaN ?
isNaN(东西)
如果是非数字,就返回true
isNaN(NaN) -> true
如果是数字,就返回false
isNaN(12) -> false
数字转字符串:
a). '' + number
b). number + ''
4、作用域
作用域:变量的
a). 全局变量
在程序的任何地方都可以访问
b). 局部变量
定义在函数里面,只能在函数的内部使用
c). 闭包
子函数可以使用父函数的局部变量
变量的遮蔽:
局部变量和全局变量同名
就近原则
在函数内部优先使用自己的变量
5、运算符
算数运算符:
+ - * /
%(取模) 取余数
% 3 -> 0 1 2
% 5 -> 0 1 2 3 4
赋值运算符:
= += -= *= /= %=
a = a + 10;
a += 10;
比较运算符:
> < >= <= == != === !==
==: 先做类型转化,再做比较
===: 严格的比较
先比较数据类型
全等
逻辑运算符:
与(且) 或 非
且: && 并且
条件1 && 条件2
两个条件都必须满足
或: || 或者
条件1 || 条件2
两个条件只要一个满足就ok
非: ! 取反
!true -> false
判断两位数:
>= 10 && <100
判断周末:
6 || 7
*想要改变运算符的优先级:使用小括号
6、流程控制语句
控制代码的走向
1、if语句
第一种:只写满足语句
if (条件) {
// 条件满足执行语句
语句;
}
第二种:if else
if (条件) {
// 条件满足执行语句1;
语句1;
} else {
// 条件不满足执行语句2
语句2;
}
第三种:多个条件
if (条件1) {
语句1;
} else if (条件2) {
语句2;
} else if (条件3) {
语句3;
} else if (条件4) {
语句4;
}.....
第四种:多个条件加默认语句
if (条件1) {
语句1;
} else if (条件2) {
语句2;
} else if (条件3) {
语句3;
} else if (条件4) {
语句4;
} else {
默认语句;
}
2、swicth 语句
switch(值) {
case 情况1:
语句1;
break;
case 情况2:
语句2;
break;
case 情况3:
语句3;
break;
......
default:
默认语句;
// break; 不要加
}
3、if简写
一、
if (条件) {
// 条件满足执行语句
语句;
}
简写以下:
1.条件 && 语句;
2.if (条件) 语句;
二、
if (条件) {
// 条件满足执行语句1;
语句1;
} else {
// 条件不满足执行语句2
语句2;
}
简写以下:
三目运算:
条件 ? 语句1 : 语句2;
4、关于break && continue
一般是配合循环使用
break:终止、中断
终止整个循环,暴力的!
continue:继续
终止当前的循环,继续下一次循环