变量
命名
方法:
1)匈牙利命名法
——变量名=类型+对象描述
Int—整型
Float——浮点
Boolean——布尔
String——字符串
Array——数组
Object——对象
Function——函数
Regular Expression——正则
2)驼峰命名法
——全部大小写
单词与单词间用下划线分割
——大小写混合
大驼峰—每个单词首字母大写
小驼峰—第一个单词首字母小写,其他首字母大写
3)规则
首字母:英文字母或者下划线
组成:英文字母、数字、下划线
禁忌:不能用关键字、保留词
var name="zhoufan"
先声明,后读写;
先赋值,后运算。
操作符
1、转换
1)其他类型转换成Number类型
null类型转化成Number
var ret1 = Number(null);
console.log(ret1); //0
console.log(typeof ret1); //number
nudefined转化成Number
console.log(Number(undefined)); //NaN
boolean转化成Number
console.log(Number(true)); //1
console.log(Number(false)); //0
string转化成Number
如果字符串中存在除了数字点以外的其他字符,则转换失败,值为NaN;
加减号表示正负号;
开头有空白可以过滤,中间有空白不能过滤。
console.log(Number("1234")); //1234
console.log(Number("+1234")); //1234
console.log(Number("-1234")); //-1234
console.log(Number(" 1234")); //1234
console.log(Number("3.145")); //3.145
console.log(Number("zhoufan")); //NaN
console.log(Number("zf2076")); //NaN
console.log(Number("13+14")); //NaN
console.log(Number("13 14")); //NaN
console.log(Number("13....14")); //NaN
console.log(Number("")); //0
console.log(Number(" ")); //0
会将接收到的数据(一般是字符串)转成整数
转换规则:从第一个非空白字符(空格、换行、tab)开始转换,直到遇到一个非数字字符为止。
如果转换失败,结果为NaN
从第一个非空字符开始,如果第一个字符不是数字或者负号,parselent就会返回NaN,
所以:parselnt转换空字符结果为NaN,但是Number返回0
console.log(parseInt("123")); //123
console.log(parseInt("+123")); //123
console.log(parseInt("-123")); //-123
console.log(parseInt(" 123")); //123
console.log(parseInt("12+3")); //12
console.log(parseInt("12-3")); //12
console.log(parseInt("12a3")); //12
console.log(parseInt("12.3")); //12
console.log(parseInt("+")); //NaN
console.log(parseInt("a123")); //NaN
会将接受到的数据(一般是字符串)转换成浮点数
遇到的第一个小数点有效,第二个小数点就无效
console.log(parseFloat("12.3")); //12.3
console.log(parseFloat("12..3")); //12
console.log(parseFloat(" 12.3")); //12.3
console.log(parseFloat("12.3+123")); //12.3
2)其他类型转换成String
null转化成string
var str="good zhoufan";
console.log(str +"\t" +null); //good zhoufan null
undefined转化成string
var str="good zhoufan";
console.log(str+"\t"+undefined); //good zhoufan undefined
boolean转化成string
var flag=true;
var ret1=flag.toString();
console.log(ret1); //true
console.log(typeof ret1); //string
number转化成string
var num=1;
console.log(""+1); //1
console.log(num.toString()); //1
3)其他类型转换成boolean类型
console.log(Boolean(0)); //false
console.log(Boolean("")); //false
console.log(Boolean(false)); //false
console.log(Boolean(NaN)); //false
console.log(Boolean(undefined)); //false
console.log(Boolean(null)); //false
2、算数运算符和算数运算表达式
表达式:由变量、常量、运算符组成的式子。
功能:进行相关计算
1)如果操作符都是数值,执行常规的加法计算,然后根据下列规则返回结果
1+2; //3
2)如果其中一个操作符是NaN,那么返回NaN
1+NaN; //NaN
3)infinity计算
Infinity+Infinity; //Infinity
Infinity-(-Infinity); //Infinity
Infinity+(-Infinity); //NaN
-Infinity-Infinity; //-Infinity
-Infinity+(-Infinity); //-Infinity
4)两个都是字符串,即平姐字符串
"zhou"+"\t"+"fan"; //"zhou\tfan"
5)一个是字符串,一个是数值,也是拼接字符串
123+"\t"+"fan"; //"123\tfan"
1)如果都是数值,进行常规乘法运算,超过js的数值范围则会返回infinity或者-infinity
99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
*9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
//Infinity
2)如果一个操作符是NaN,返回NaN
1*NaN; //NaN
NaN*NaN; //NaN
3)infinity计算
Infinity*0; //NaN
Infinity*2; //Infinity 与非零数值相乘
Infinity*-1; //-Infinity 正负取决于所乘数值的符号
Infinity*Infinity; //Infinity
4)如果有一个从操作符不是数值,那么会后台会Number()将其转换成数值,(在应用上的规则!)
6*"6"; //36
1)常规数与上面一致,NaN操作一致,
2)0被0整除
0/0; //NaN
3)非零的有限数被0整除,结果返回infinity或者-infinity
2/0; //Infinity
-2/0; //-Infinity
4)infinity计算
Infinity/0; //Infinity
Infinity/2; //Infinity
Infinity/-2; //-Infinity
5)如果有一个从操作符不是数值,那么会后台会Number()将其转换成数值,(在应用上的规则!)
1)常数正常计算
6%2; //0
2)被除数是有限大值,除数是零,返回NaN
999999999%0; //NaN
3)infinity计算
Infinity%Infinity; //NaN
4)如果有一个从操作符不是数值,那么会后台会Number()将其转换成数值,(在应用上的规则!)
3、自增自减运算符
自增
功能:将变量值加1
a++:表示的是a=a+1,先赋值后运算
++a:表示的是a=a+1,先运算后赋值
var a=2; b=8; //a=3--------->4
const sum=(a++)+(b++)+(++a)+(++b); //b=9----------->10
alert(sum); //sum=2+8+4+10=24
自减
(a- -):表示的是a=a-1,先赋值后运算
( --a):表示的是a=a-1,先运算后赋值
var a=5; b=8; c=2;
const sum=a-- + --c - a++ + ++b + c++ - --a + ++a;
alert(sum);
// a=4--->5--->4-----5
// b=9
// c=1--->2
// sum=5+1-4+9+1-4+5=1
4、复合运算符
a+=1===a=a+1
a-=1===a=a-1
a*=1===a=a*1
a/=1===a=a/1
a%=1===a=a%1
5、关系运算符
1、都是数值,正常比较
2、都是字符串,比较对应的字符串编码值
3、一个是数值,则将另一个操作符转化成一个数值,然后进行数值比较
4、如果一个是对象,则调用这个对象的valueof()方法,要么调用tostring(),再按规则进行比较
5、如果一个是布尔值,那么现将其转化为数值,再进行比较
> //大于
< //小于
>= //大于等于
<= //小于等于
== //等于
=== //绝对等于
6、逻辑运算符
& //与,有一个是假,全都是假
|| //或,有一个是真,全都是真
! //非,真假相反(前面为真,后面就为假)
7、三目运算符
var num=(1)?(2):(3);
console.log(num); //2
输入
prompt()接受外部的数据,默认是字符串类型
有时需要将其转化成字符串
num1=parseInt(prompt("请输入num1的值:")); //输入的值!
基本语句
if语句
格式1:
if(表达式){
执行语句;
}
格式2:
if(表达式){
执行语句1;
}else{
执行语句2;
}
例子(输入数值,判断奇偶):
let n;
n=parseInt(prompt("请输入一个数:"));
if(n%2===0){
console.log("偶数")
}else {
console.log("奇数")
}
格式3:
if(表达式){
执行语句1;
}else if(表达式2){
执行语句2;
}else if(表达式3){
执行语句3;
}
.......
例子(输入数值,比较年龄):
let n;
n=parseInt(prompt("请输入你的年龄:"));
if(n>=20){
console.log("你年龄比我大!")
}else if(n<20){
console.log("你的年龄比我小!")
}
switch语句和break语句
格式:
switch(表达式){
case 标号1:
执行语句1;
case 标号2:
执行语句2;
case 标号3:
执行语句3;
.........
default:
执行语句n;
}
例子(输入数字,判断星期几):
let day;
day=parseInt(prompt("请输入数字:"));
switch (day){
case 1:
console.log("星期一");
break;
case 2:
console.log("星期二");
break;
case 3:
console.log("星期三");
default:
console.log("输入错误!");
}
while语句
格式1:
while(表达式){
执行语句;
}
例子(输入数字,满足要求的数循环累加):
let num;
num=parseInt(prompt("请输入数字:"));
while (num<=100){
if(num%2){
console.log(num);
}
num++
}
格式2:
do{
语句
}while();
例子(计算1到100的和):
'use strict';
let num=1;
let sum=0;
do{
sum=sum+num;
num++;
}while (num<=100);
console.log(sum);
for循环
格式:
for(语句1;表达式;语句3){
语句
}