一、var变量
1、如果定义了变量但是没有赋值,就会出现undefined
例var age console.log(age) //undefined
2、如果直接给变量赋值,没有定义变量,也可以把值输出来
3、如果没有定义也没有赋值就会导致程序奔溃
4、变量的命名规则
1.只能有由字母,数字,下划线,$组成
2.数字不能开头
3.严格区分大小写
4.不能使用关键字做变量名(关键字默认为蓝色)
5.尽量使用语义明确的单词做变量名,不要使用拼音
6.如果变量名过长,可以使用驼峰原则,或下划线分隔
5、编程语言
a、强类型编程语言
定义:声明变量时,必须指定变量的类型,而且以后该变量只能存储该类型的数据
例:c c++ java
b、弱类型编程语言
定义:声明时,没有指定类型. 而是根据值来倒推,得到变量的类型
例:javascript,python,php,swift,kotlin
6、类型转换
// 转字符
num = 5
console.log( num.toString() ) //转字符类型
console.log( typeof(num.toString()) ) //转字符,在求类型,再输出
console.log( String(5) ) //不需要变量,直接转
console.log( ''+5 ) //隐式转为字符类型
//转数字
// parseInt() //转为整数
console.log( parseInt(3.1415926) ) //3
console.log( parseInt('3.1415926') ) //3 先字符转数字,再取整
console.log( parseInt('123abc') ) //123 只转前面认识的数字,后面非数字不要
console.log( parseInt('abc123') ) //NaN
// parseFloat() //转为浮点数
console.log( parseFloat(3) ) //3 不会加小数点
console.log( parseFloat('3.1415926') ) //3.1415926 字符转浮点数
console.log( parseFloat('123abc') ) //123 只转前面认识的数字,后面非数字不要
console.log( parseFloat('abc123') ) //NaN
//Number() 不管什么类型,都转整数
console.log( Number('5') ) //5
console.log( Number(true) ) //1
//隐式转数字
console.log( "2"*2 ) //4 字符乘以数字,得数字
console.log( "2"-2 ) //0
console.log( "2"/2 ) //1
console.log( "2"+2 ) //22 这里是字符连接,不是数学加
//有一些值,它代表假(false)
//'' 0 null NaN undefined 都表示为false
console.log( Boolean('') ) //false
console.log( Boolean(0) ) //false
console.log( Boolean(null) ) //false
console.log( Boolean(NaN) ) //false
console.log( Boolean(undefined) ) //false
//非0 非空字符代表true
console.log( Boolean(1) ) //true
console.log( Boolean(-1) ) //true
console.log( Boolean(" ") ) //空格也是字符,那么就会表示为真
7、算数运算
a、表达式中,全部为&& ,那么可以使用逻辑与的短路特性
var age = 10
var num = 20
console.log( 0 && ++age ) //0
console.log( ++num && 0 && ++age ) //0
console.log( num ) //21
console.log( age ) //10
//总结: 逻辑与的运算,如果左侧出现了false,那么右侧就不再进行运算了
b、表达式中,全部为|| ,那么可以使用逻辑或的短路特性
var age = 10
console.log( 5 || ++age ) //5
console.log( age ) //10
//总结:逻辑或短路,如果左侧表达式的结果为true,则右侧无需再进行运算了
c、表达式中,有与,有或,那么必须按照优先级使用. 不适用于短路特性
var age = 10
console.log( 0 || 7 && ++age ) //11