变量名的规范
不能以数字开头(如:var 3dad;)
不能包含中文(如:var per人;)
非法的-(如:var bad-var;)
var就是一个关键字,所以很明显不能用来做变量名(如:var var;)
另外还要注意一点,变量名称是区分大小写的!
变量的声明类型
var name=123;
声明变量并赋值;
var name2;
name2=123;
先声明变量,再赋值;
var a1,a2,a3;
同时声明多个变量;
var a=s=d=123;
同时声明多个变量并赋值;
布尔值
布尔值有两种类型
true和false
用true表示真值;
用false表示假值;
复合(引用)数值类型
对象;
数组;
特殊类型
Undefined
即:未定义值。
var a;//即:声明了一个变量,但没有对其赋值;
alert(a);//但它仍然是有值的,它的值为undefined;
字符串
字符串相连
如:
var s1="hello,";
s1=s1+"world!";
alert(s1); 结果为:hello,world
s1+="!!!!";
alert(s1);
数学运算符与比较
//加法+
//减法-
//乘法*
//除法/
//自增++
//自减- -
NaN;
NaN;//Not a Number ;
即:不是一个数字;
javascript的弱类型
如:
var n=10;
var s="hello";
alert(n/s);//弱类型的表现。
此时的弹出为NaN;
即不是一个数值;
alert(2*"32");//自动转换
即返回值为64;
alert(243+"232");//自动类型转换
此时弹出结果为243232;
//字符串不总能转换成数字;
//但数字总能转换成字符串;
即字符串的偏向性;
总结
alert(1+2+"3");
此时弹出结果为33;
alert(1+2+"3"+4+5);
此时弹出结果为3345;
即遇到字符串后后边的全部转换为字符串;
那么此时想要让后面继续做加法运算,则需要添加括号,相当于提高运算优先级;
如:
alert(1+2+"3"+(4+5));
此时弹出结果为339;
+=
var n=10;
var s=20;
var z=hello;
n+=12;
s*=10;
此时,n的值为10+12;即:22;
s的值为20*10;即:200;
z+=",world!!!"
就相当于:z=z+",word!!!";
比较运算符
比较运算符返回的是布尔值;(teue、false);
如:alert((2<4)==(1>0)==(3<=3)==(2!=4)==(2==2)==true);
则弹出值为布尔值true;
若:alert((2>4)==(1>0)==(3<=3)==(2!=4)==(2==2)==true)
则弹出值为布尔值false;
逻辑运算符
&& 相当于and
|| 相当于or
! 相当于not*/
alert(!!3);
即:alert(!!true);
上例返回值为true;
即:
!!连用两个非运算符是将变量值转换成布尔值的快速方法;
//数字转换布尔值规则:
0表示false,非零表示true;
3&&4;//and 运算符返回布尔值,弱类型。
false&&true;//快速与
//and :当遇到false是直接返回false
false&&a;//不会去判断a的值,返回false;
var a=123;
var b=0;
alert(a&&b);//返回最后判断的值;
即:只要有一个错误的值,返回值就为false;
true||false;//只要有一个为true,整个表达式就为true;
即:只要有一个值为正确的值,返回值就为true;
字符串转换布尔值:
字符串什么也没有时,为false;
否则为true;
获取变量类型
typeof运算符;
var t=typeof 123
alert(t);
返回值为变量类型;
拓:
prompt("请输入内容","默认值");
会生成一个对话框让用户输入内容
字符串*1直接转换成数字;
//NaN 是一个特殊的数值; NaN不与自身相等; 即:NaN并不表示一个指定的值;
如何判断值是不是NaN
使用函数
isNaN("测试的值")
例:
var a=prompt("请输入你的年龄","");
a*1;
if(isNaN(a)){
alert("非法数字");
} else{
alert("你活了"+a*365*24*3600+"秒")
}