创建变量
ES5
书写格式:关键字(关键词) 标识符(变量名) 分号
例子: var F222 ;
var F222; 创建一个变量名为F222的变量
ES6
书写格式:关键字(关键词) 标识符(变量名) 分号
例子: let F71 ;
let F71;
声明常量
书写格式:关键字(关键词) 标识符(变量名) 分号
例子: const F71 ;
const F71 =200;常量是不可更改的;再赋值会报错;
var 和 let的区别
1、var声明的变量可重复,是可以重复的,let不行。
2、var声明的变量,可以先使用后声明。
变量的赋值
书写格式: 标识符 赋值符号 表达式 分号
F70 = 0 ;
变量初始化
书写格式:关键字(关键词) 标识符(变量名) 分号
var F70 =100;
var F71
使用变量 console.log() 在终端输出小括号的内容;
console.log(F70);
数据类型
基本数值类型
【undefined】
let F70 = undefined;
查看数据类型
书写格式:typeof 标示符
console.log(F70);//undefined
console.log(typeof F70);//undefined
typeof拓展
输出一个未声明变量类型,会输出undefined (即不会报错)
原因:计算机会默认以var声明的该变量
【null】 空
let F73 =null
console.log(F73);//null
console.log(typeof F73);//null
【Boolean】布尔类型 (适用场景:判断条件)
两个值:真 true 1 假 false 0
注:小写字母
NaN:is not number;不是一个数字,但是类型是数值;
判断用户的输入是不是一个纯数字(true/false)
isNaN(标识符)表示判断是不是一个非数字
返回true则不是数字,返回false则是纯数字;
let inputNum="aabc";
console.log(isNaN(inputNum));
parseInt 当前变量取整
注:从第一个纯数字截取,一直到非数字前一位。
1、第一个字符,不是数字,负号,返回NaN
2、第一个字符是0,到第一个不是0的数字,都无效。
【string】字符型 字符串
书写格式:内容左右加引号(单引号,双引号都可以)单双引号可以嵌套
let str="chongqing"
console.log(str);//chongqing
str="chengdu"
console.log(str);//chengdu
字符串模板
let account='f70';
let str=`欢迎光临${account},马尔代夫银行`;
console.log(str);
let count=3;
let str=`你还有${count}次机会`;
console.log(str);
【数据类型转换】
判断语句
【隐式转换】
书写格式:if(条件){}
以下内容在转换布尔值时都是false
1.false
2.0
3.null
4.undefined
5. `` / '' / ""
6.NaN
【 强制转换布尔】
书写格式:Boolean(标识符/具体值)
let str="abc";
let boo=Boolean(str);会把str的内容装转换成布尔值返回;
console.log(boo);//true
在值前面加两个!!
【强制转换数值】
例如:
let str='123';
let num=Number(str);
console.log(num,typeof num);//123 number
let str=undefined;
let num=Number(str);
console.log(num,typeof num);//NaN number
快捷转换数值类型方式【隐式转换】
例如:
let str ='200abc';
let num = str - 0;
console.log(num, typeof num);
加isNaN或者 parseInt
强制转换字符串
例如:
let num=123;
let str=String(num);
console.log(str,typeof str);//123 string
快捷转换字符串类型方式【隐式转换】
例如:
let num=123;
let str=num +'';
console.log(str,typeof str);//123 string
四舍五入,
例如:
let num3 =1.56;
console.log(`四舍五入:${Math.round(num3)}`);//2
向上取整
例如:
let num2 =1.56;
console.log(`向下取整:${Math.ceil(num2)}`);//2
向下取整
例如:
let num1 =1.56;
console.log(`向下取整:${Math.floor(num1)}`);//1
保留2位
例如:
let num4 =1.56;
let str=`保留2位小数:${num4.toFixed(2)}`
console.log(str);//1.56
【运算符】
一元运算符
原理:++在前,先自增,再使用
例如:
let num1=2;
let num2= ++num1;
console.log(num2);//3
console.log(num1);//3
原理:++在后,先使用,再自增
例如:
let num1=2;
let num2= num1++;
console.log(num2);//2
console.log(num1);//3
自减原理:--在后,先使用,在自减
--在后,先自减,在使用
例如:
let num1=2;
let num2= num1--;
console.log(num2);//2
console.log(num1);//1
例如:
let num5=100;
--num5;
console.log(num5);//99
取决于是否在一个表达式当中,才考虑先后顺序
比较运算符 返回的是布尔值
大于 | > |
小于 | < |
等于 | == |
大于等于 | >= |
小于等于 | <= |
不等于 | != |
全等 | === |
不全等 | !== |
NaN不等于任何数 也包括它自己
注:判断是不是非数字 使用isNaN()
字符串比较是按位比较(ASC码)
全等:"==="判断的是值跟类型 值和类型都要相同才能返回true
例如:
console.log(123=="123");//true
console.log(123==="123");//false
[逻辑运算符]
非 与 或
非 书写格式: ! 表达式/标示符 功能:取反
【与运算】 书写格式: && 一假全假 全部都是真才会返回true
step1: 先判断表达式1的值是不是flase;
如果是则返回表达式1的值
step2: 若表达式1的值时true,
则判断表达式2的值,是不是true;
是true,则判断表达式3,以此类推;
是false,则返回表达式2的值,以此类推;
例如:
console.log(true&&true);//true
console.log(true&&true&&false);//false
console.log(true && false && 1);//false
console.log(true && 0 && 1 );//0
console.log(true && 1 && 2);//2
console.log(true && 0 && false);//0
【运算】 书写格式: || 一真全真
【位运算符】
| 和 &
先把表达式内容转换二进制,换位运算后再转十进制输出
例如:
console.log(1|2);//3
console.log(1&2);//0
【三目运算符】
书写格式:表达式1 ? 表达式2 : 表达式3 ;
表达式1位为判断条件,为真时输出2,为假时输出3 ;
例如:用户输入3个数,输出最大的数;
console.log(`请输入第一个数`);
let inputNum1=rs.question()-0;
console.log(`请输入第二个数`);
let inputNum2=rs.question()-0;
console.log(`请输入第三个数`);
let inputNum3=rs.question()-0;
(inputNum1>inputNum2 && inputNum1>inputNum3) ? console.log(`您输入的三个数中最大值为:${inputNum1}`)
:(inputNum2>inputNum3?
console.log(`您输入的三个数中最大值为:${inputNum2}`)
:console.log(`您输入的三个数中最大值为:${inputNum3}`)
);
【单分支语句】
书写格式:
if(判断条件){
代码块;
}
功能,当条件为真执行大括号里的代码块,反之不执行。
例如:
if(true){
console.log(1);
let i=3;
console.log(i+4);
}
【双分支语句】
if (条件) {代码块}
else {代码块2}
条件为真执行if的代码块,条件为假执行else的代码块;
例如:
let f70 =rs.question()-0;
if(f70>=100){
console.log(--f70);
}else{
console.log(++f70);
}
【多分支语句】
书写格式:
if (条件) {代码块}
else if (条件2) {代码块2}
else if (条件3) {代码块2}
else if (条件..) {代码块..}
else {代码块n}
条件1为真,执行if 的代码;
条件1为假, 执行条件2;
依次类推
如果所有条件不满足,则执行最后一个else的代码块
例如:
console.log(`请输入您的分数:`);
let inputScore = rs.question() - 0;
if (inputScore >= 85) {
console.log(`您可真NB`);
} else if (inputScore >= 75) {
console.log(`您要多努力啊`);
} else if (inputScore >= 60) {
console.log(`您真的菜`);
} else {
console.log(`您真垃圾`);
}
【作用域】 变量可以使用的范围
[全局作用域]
没有大括号包含
声明的变量为全局变量,在当前js文件任何地方均可使用。
[局部作用域]
有大括号包含
声明的变量为局部变量,在当前的作用域和嵌套的作用域均可使用
注:
1.局部有就用局部的变量,局部没有就找就向上变量;
若最终都找不到就输出 xxxx is not defined
2.不同作用域中的变量可以重复仅限(let)
例如:
let f70=2;
{
let f71=3;
console.log(f70);
console.log(f71)
{
let f71=5;
console.log(f71);
}
}
【switch语句】
书写格式:
switch(匹配值){
case 匹配值1:
代码块;
case 匹配值2:
代码块;
case 匹配值3:
代码块;
case 匹配值4:
代码块;
默认值:default:{代码块};
}
1.匹配方式是全等;
2.break终止case的继续执行代码。