JS基础

JS的运行环境

  • 浏览器
  • node.js

表达式&语句

JS基础_第1张图片
20170325104100.png

在图中5 % 3中的%是取模运算符,图中5除以3得出的结果是余2

20170325104101.png

1 + 1是表达式,表达式是有值得,1+1的值是2.把2的值赋值给a,就是赋值语句.
赋值语句(var a = 1 + 1)它的本身是没值的,所以返回了undefined

20170325104100.png

前面不用var声明,它就有值. 1 + 1的值就是a

20170325104100.png

看看console.log(1)返回的是什么,1是console.log(1)的,而console.log(1)本身是没有值得,所以返回undefined.

变量

var a  /*用var 就是声明变量,此时a就是一个变量*/
a = 1
a = 'stringaaa'  //它的值可以是1,可以是stringaaa,总之可以随便改.既然它的值可以变,所以他就是变量

除了var以外还有什么可以声明?

  • let //不可重复声明,
  • const //不可重复声明,在声明的时候必须要赋值,这个值不能修改
直接声明变量(全局变量)
a = 1 /*如果你在(非函数内)顶级的作用域,不用var直接声明a,他就是一个 全局变量.
        首先a会去找有没有声明过a,没有声明过就变成global.a  */

如果你声明一个最外层的变量,那么这个变量默认就是global.变量

变量提升<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

由于JS代码是一行一行的执行

var  a
console.log (a)
a = 1  //此处的var a 会跑到console.log(a)的前面.  
function a(){
a = 1       
                        //当前作用域的var提升到函数a()里面的顶层,注意!是里面!
                        //若var脱离了function,则销毁var a 
var a
}

只要是声明,就会被提前 !变量提升只对var声明的变量有用!
浏览器分两次解释代码,第一次先读这段代码有多少变量,在执行.

常量

x = 2 //可以
1 = 3 //不行
所以常量就是赋值不能变的量
用const可以声明常量

if...else

var n = 1

if (n === 1) {
    console.log('1111')
}else if (n === 2) {
    console.log('2222')
}else {
    console.log('3333')
}

n等于1的时候console.log('1111')
n等于2的时候console.log('2222')
n等于其他值的时候console.log('3333')

switch

var b = 4

switch (b) {
    case 1:
    console.log('1111')  //b等于1时,console.log('1111')
    break;
    case 2:
    console.log('2222')  //b等于2时,console.log('2222') 
    break;
    default: 
    console.log('No')     //b不满足以上条件时 console.log('No')  
}

break表示一个case的结束
break必须以分号;结尾

三元运算符 ?:

console.log(b===1 ? 1 + 1 : 2 + 3)

这是相当于简化版if , b的值是1 , 就会输出2 , 不是则5

while循环语句

var a = 1

while (a < 11) {
    console.log(a)
    a = a + 1
}

console.log('完')
JS基础_第2张图片
Q20170325140706.png

当a小于11时 , console.log(a) , 然后a 赋值变成 a + 1 , 直到a不小于11 , console.log('完')

var a = 1
var b
 
while ((b = a) < 11) {
  console.log(b)
  a += 1
}

把a的值赋值给b , 执行循环

for循环

for (var a = 1;a < 11;a++) {
console.log(a)
}

在上面的for循环中var a = 1只执行一次,如果while这么写, 那它每次都会执行var a = 1

do...while

var a = 1
do{
console.log(a)
a += 1
}while (a < 11) 

console.log('结束')

它和while的区别就是 , 先做事(先循环一次) , 再判断

continue和break

JS基础_第3张图片
Q20170325140706.png
Q20170325140706.png

continue的意思就是, 马上跳出进入下次循环
break就是立即跳出循环

JavaScript属于结构化编程

1.代码是一行一行的执行
2.有if...else
3.有循环

满足以上三个条件就属于结构化编程

数据类型&typeof操作符

typeof用来检测变量的数据类型
number
boolean
null
undefined
string
symbol()
/**symbol()是ES6引入的新的字符类型. 以它为值,这个值和谁都不相等,symbol()就是产生一个独一无二的值. **/

以上 的数据类型属于基础类型, 没有「引用」的概念 . 还有一种复杂类型就是Object


JS基础_第4张图片
Q20170325140706.png

JS 只能表示两个字节的Unicode

你可能感兴趣的:(JS基础)