//基本数据类型number string boolean
// undefined null
//number 无论是整数还是浮点数都是number类型
let a =10,b =3.14
console.log(typeof (a));
console.log(typeof (b));
//string:字符串类型。可以使用双引号
let m ="hello";
console.log(typeof m);
let d =10 -'hello';
console.log(typeof d);//NaN是number里的特殊值
//条件判断语句
//if语句
// let age= prompt('请输入年龄');
// if (age>18){
// alert(age)
// }
//if....else语句
// let age = prompt('请输入年龄');
// if (age>18){
// alert(age)
// }else {
// alert('未满十八岁不得入内')
// }
//if....else if....else语句
// let age = prompt('请输入年龄');
// if(age<18){
// alert('未成年');
// }else if (age == 18){
// alert('刚刚好')
// }else{
// alert('老了')
// }
//switch...case语句(python不支持)
// let operator = prompt('请输入你要进行的操作');
// switch (operator) {
// case '1':
// alert('添加用户');
// break;
// case'2':
// alert('删除用户');
// break;
// case '3':
// alert('添加用户');
// break;
// default:
// alert('输入正确的');
// break;
// }
//三元表达式
// let num1 = Number(prompt('请输入一个数字'));
// let num2 = prompt('请再次输入一个数字');
// let max = num1 > num2 ? num1 : num2;
// alert(max)
//循环语句有四种
//while 循环
// let i = 0;
// while(i<10){
// i += 1;
// alert(i);
// }
//do...while(python不支持)不管条件是否成立都执行do代码块中一遍
// let x = 10;
// do {
// alert(x);
// } while (x < 10);//for循环
// for (let i = 0; i < 10; i++) {
// alert(i)
// }
//for in循环 这个获取到的是下标
// for (let x in 'hello'){
// alert(x)
// }
//平常使用的是 二元运算符就是有两个值做运算
//一元运算符是只有一个数字
let a =10;
console.log(+a);//10
console.log(-a);//-10
// 自增自减运算符
// 无论是先自增还是后自增,变量的值都会加一
// 大多数情况下 使用++a 或者 a++没有区边
//自增:先自增和后自增
let x =1;
++x;//先自增,后赋值
console.log(x);
let y =0;
y++;//后自增,先赋值
console.log(y);
//逻辑运算符
//&&逻辑与
//||逻辑或
//!逻辑非
//转换为数字
let age =prompt('请输入年龄');
//接收到的是一个字符串
//age ++; 自增会自动的转换为数字类型的
//let newAge = age + 1;
//使用Number内置了实现转换
let newAge =Number(age) +5;
//使用parseInt转换成为整数 或者parseFloat转换成为浮点数
//让字符串和数字做加法以外的运算就好了
alert('您明年' +newAge)
//转换成为字符串String内置了
let a =10;
let b =String(a)
console.log(typeof (b));
//使用调用toString方法
let x =100;
y =x.toString();
console.log(typeof y);
//null 和 undefined也没有tostring方法
//直接和字符串做加法运算
let m =10;
console.log(m +'');
//转换成为boolean值
//使用Boolean内酯类
//使用!!转换
let b =9;
console.log(!b);
//隐式的类型转换(常用的)
if(b){
console.log('hello world');
}
//数字里转换成为布尔值为false的类型有:
//number类型:0 NaN
//string类型:空字符串转换是false
//undefined转换成boolean值是false
// 在数字比较方面是比较一致的
console.log(4 >2);
console.log(3 <5);
// == 和python里的== 有区别
// js里的如果是数字4和字符串的4 是true
// python里的数字和字符串比较的话是false
//js里的是只比较内容不比较数据类型会将字符串里的尝试转换位数字
//js里还有===三个等号即比较内容还比较类型
//js里的!=和python也有区边
//!= 只比较内容不比较数据类型
//!==是即比较内容也比较数据类型
//字符串和字符串比较是会逐步比较编码值和python一致
console.log(9 !=3);
console.log(4 ==4);
//字符串和数字比较运算会比较的是内容尝试的将内容转换为数字
//如果转换不了的话结果是false
//任何书和NaN比较都是false 包括他自己比较都是false
// js里支持+ - * / %
console.log(1+1);
console.log(2-1);
console.log(2*2);
console.log(10/3);
console.log(10 %3);
// js里的算数运算符和python里的区边
// 特别是在字符串里得区边
//1.数字和字符串做加法运算会拼成一个新的字符串
console.log('hello' +2);
//2.数字不能和字符串做除了加法以外的任何运算会尝试把字符串转换成为数字然后
//在进行运算转换不成功后结果才是NaN
console.log('hello' -2);//结果是NaN
console.log('123' -2);//结果是121
console.log('hello' /2);//结果是NaN
console.log('12' /2);//结果是6
console.log('hello' *3);//结果是个NaN
console.log('3' *3);//结果是9
//赋值运算符 = 将等号右边的值赋值个等号左边
let a =100;
let b =10;
//如果已经使用let声明了一个变量不允许后面的再给这个变量赋值
//let a = 'hello';//又重新定义了变量
//a = 'yes';//修改了这个变量
a +=1;
console.log(a);
a -=1;
console.log(a);
a *=2;
console.log(a);
a /=2;
console.log(a);
a %=2;
console.log(a);