js中的变量
1、JS中变量声明的写法;
var num=10;//使用var声明的变量属于局部变量只在当前作用域内有效
num=10;//不用var声明的变量,默认为全局变量,在整个JS文件中都有效。
2、使用一行语句同时声明多个变量。var x=10,y,z=8;
Y属于已声明但是未赋值状态 结果为undefined。
声明变量的注意事项
① JS中所有变量的声明均使用var关键字,变量具体是什么数据类型,取决于给变量赋值的类型。
② JS中同一个变量,可以在多次不同赋值时,修改变量的数据类型。
var=10;//初始声明时a是整数型
a="aaa"//重复赋值时,整数型的a被修改为字符串类型。
③ 变量可以使用var声明,也可以不使用var声明。
[区别] 使用var声明为局部变量,不使用var声明为全局变量。
④ 只用var声明,但是不赋值。结果为undefined.
例如,var a;//a为undefined.但是,如果不声明也不赋值的a,直接使用会报错。
⑤ 同一变量名,可以多次使用var声明,但是后面的var并没有任何卵用。第二次再使用var声明时,只会被理解为
普通的赋值操作。
2、变量名的命名要求
① 变量名只能由字母、数字和下划线组成。
② 开头不能是数字。
③ 变量名区分大小写,大写字母和小写字母为不同变量。
3、变量名的命名规范
① 要符合小驼峰法则(骆驼命名法):
首字母小写,之后每个单词的首字母大写
myNameIsZhaoYuan √
②货值使用匈牙利命名法,所有字母小写,单词之间下划线分隔。
my_name_is_zhao_yuan √
mynameisjianghao × 能用但是不规范。
4、JS中的数据类型
undefined:未定义。已经使用var声明的变量,但是没有赋值. 例如 var a;
null:空的引用。
boolean:布尔类型。表示真假。只有两个值 true false.
number:数值类型。可以是正数,也可以是小数。
string:字符串类型。用"" 或‘‘包裹的内容,称为字符串。
object:对象类型。
5、[常用的数值函数]
① isNaN();判断一个变量或常量是否是NaN(not a number 非数值)
使用isNaN判断时,会尝试使用number()函数进行转换。如果最终结果能够转为数字,则
不是NaN,结果为false。
② number()函数,将其他类型的数据,尝试转为数值型。
[字符串类型]
>>>字符串为纯数值字符串,会转为对应的数字:"111"->111
>>>字符串为空字符串,会转为0:""->0;
>>>字符串包含任何其他字符时,都不能转。"1a"->NaN
[boolean类型]
true->1
false->0
[null/undefined]
null->0
undefined->NaN
[object]
③ ParseInt()将字符串转为整数类型。
>>>纯数值字符串,能转。"12"->12 "12.9"->12(小时转化时,直接抹掉小数点,不进行四舍五入)
>>>空字符串不能转""->NaN
>>>包含其他字符的字符串,会截取第一个非数值字符前的数字部分 "123a456"->123 "b123a456"->NAN
>>>ParseInt()只能转字符串,转其他类型全是NaN。
[number函数与ParseInt()的区别]
1.number函数可以转各种数据类型,ParseInt()只能转字符串;
2.两者在转字符串时,结果不完全相同。
④ ParseFloat() 将字符串转为数值型;
转换规则与ParseInt()相同,只是如果有小数,则保留小数点。如果没有小数,则依然是整数。
"12.5"->12.5 "11"->11
⑤ typeof()检测变量的数据类型
字符串->string
数值->number
未定义->undefined
true/false->boolean
对象/null->object
函数->function
[js中常用的输入输出语句]
1、document.write();将()中的内容,打印输出到浏览器上;
使用时需注意,除变量常量外的所有内容,必须放到""中。变量和常量必须放到""外面。
如果同时有变量和字符串,必须用+链接
eg:document.write("左手中的纸牌"+left+"<br />")
2、alert();使用弹窗输出;
弹窗警告,()中的内容与上述要求相同。
3、promt();弹窗输入\n
接受两部分参数:
① 输入框上面的提示内容,可选
② 输入框里面的默认信息,可选
当只写一部分时,表示表示输入框上面的提示内容
可以定义变量,接收输入的内容,点击确定按钮,变量将被赋值为输入的内容
点击取消按钮,变量将被赋值为null。
输入内容时默认接收的数据类型都是字符串。
1、算术运算(单目运算符)
+ 加、-减、*乘、 /除、 %取余、++自增 、--自减
>>> +:有两种作用,链接字符串/加法运算。当+两边全为数字时,进行加法运算;当+两边有任意一边为字符串时,
起链接字符串的作用。除+外,其余符号运算时,会尝试将左右两边用number函数转为数字。
>>> /:结果会保留小数点。
>>> ++:将变量在原有基础上加一
--:将变量在原有基础上减一
【a++和++a的异同】 预先 空袭 灾情 解除
① 相同点:无论是a++还是++a运算玩以后 a的值均会加1
②不同点:a++:先用a的值运算,再把a+1;
++a:先把a+1,再用a的值运算。
2、赋值运算
=赋值 += -= *= /= %=
a +=b;相当于 a=a+b;但是前者的运算效率要比后者快。,所以推荐使用+=的写法。
3、关系运算
==、===、 !=、!== 不全等>、<、>=、<=
>>>关系运算符,运算之后的结果,只能是boolean类型;
>>>判断一个数字是否处于某个区间,必须用&&链接
a<=10 && a>=0 √
>>>===:严格等于。要求不但要类型相同,值也必须相同。类型不同结果结果直接false;类型相同,载进行下一步判断。
>>>==:等于。类型相同时,与===
相同,类型不同时,先尝试用number();将两边转为数字,然后再进行判断。
但是有个别特例 ,如null==false × null==undefined √
4、条件运算符(多目运算)
a>b?true:false
由两个重要符号 : ?和:
当?前面部分运算结果为true时,执行:前面的代码
当?前面部分运算结果为false时,执行:后面代码
:两边可以为数值,则整个式子可用于赋值。var a=1<2?1:2;
冒号两边可以为代码块,将直接执行代码,1<2?alert(1):alert(2);
多目运算符可以多层嵌套var a=1<2?alert(1):(1<2?4:5);
5、位运算符、 逻辑运算符
&&与、 ||或、!非
&&两边都成立,结果为true
|| 两边有任意一边成立,结果为true
6、运算符的优先级
() 小括号最高
! ++ -- 单目运算符
* / %
+ -
< > <= >=
== !=
&&
|| 与或同时存在时,与比或高。
+= -= *= 、/= 最低的是各种赋值。
【if-else结构】
1、结构的写法
if(判断条件){
条件为true时,执行if{}
}
else{
条件为false时,执行else{}
}
2、注意事项
① else{}语句块。可以根据情况进行省略。
② if和else后面的大括号可以省略,但是省略大括号后,if和else后面只能跟一条语句。
所以并不建议省略大括号。
3、if的括号中的判断条件支持的数据类型,支持的情况。
① Boolean:true为真,false为假。
② string:空字符串为假。所有非空字符串为真。
③ number:0为假,一切非0数字为真。
④ null undefined NaN:全为假。
⑤ object:全为真。
* */
/*
【多重if结构】
1、结构写法
if(条件一){
条件一成立,执行的操作
}
else if(条件二){
条件一不成立,并且条件二成立执行的操作
}
else if(){
上述所有条件都不成立时,执行的操作。
}
2、多重if结构中,各个判断条件是互斥的,只能选择其中一条路执行,遇到正确选项
并执行完以后,直接跳出结构,不再判断后续分支;
3、嵌套if结构
1、if写法:
if(条件一){
//条件一成立
if(条件二)
{
条件一成立&&条件二成立
}else{
条件一成立&&条件二不成立
}
}
else{
//条件一不成立
}
2、在嵌套if结构中,如果省略大括号,else结构永远属于离他最近的一个if结构
3、嵌套结构可以多层嵌套,但是一般不超过三层
能用多重if结构的一般不推荐嵌套if。