JS基础

作者: 饥人谷_hak | 来源:发表于2017-03-25 10:03 被阅读4次

JS的运行环境

  • 浏览器
  • node.js

表达式&语句

20170325104100.png

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

20170325104101.png

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

20170325104100.png

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

20170325104100.png

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

变量

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

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

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

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

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

由于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
}

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

常量

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

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的结束
<b>break必须以分号;结尾</b>

三元运算符 ?:

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('完')
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

Q20170325140706.png Q20170325140706.png

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

JavaScript属于结构化编程

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

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

数据类型&typeof操作符

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

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

Q20170325140706.png

JS 只能表示两个字节的Unicode

相关文章

  • React-Native 随笔

    学习基础: js的基础知识, rect.js基础 JSX语法基础 FlexBox布局 安装 安装node.js下载...

  • 最新web前端相关课程学习链接

    js基础篇 js进阶篇 js高级篇 vue基础篇 vue高级篇 react基础 react高级 Nodejs基础 ...

  • web前端 -- Day23 js高级

    js基础 JavaScript简称:JS JS分三个部分: ECMAScript标准---基础的语法 DOM D...

  • 前端JavaScript面试技巧

    1-1 课程概述 要做什么?——讲解前端 JS 基础面试题 哪些部分?——JS 基础,JS-WEB-API,JS ...

  • 4/07day28_js基础

    day28_js基础 回顾 JS基础语法 JS运算符 JS流程控制语句 条件语句 JS的条件语句和Java语法基本...

  • 2018-12-20

    1.01.尚硅谷_JS基础_JS简介(1) 10.10.尚硅谷_JS基础_Null和Undefined(10) 1...

  • JS基础和WebAPIs的关联性

    学习ECMAscript标准规定的基本语法掌握JS基础语法只学习JS基础做不了网页交互效果学习JS基础语法是为了后...

  • 2019-07-27 前端面试题

    1.js的基础类型 js的基础类型包括 Undefined , Null , String ,Number ,...

  • 网络编程(十九) JavaScript(9)

    一、 JS的组成 1.1 JS基础阶段以及Web APIs阶段 【1】JS基础阶段 我们学习的生死ECMAScri...

  • 发现•分享—2019-01-17

    文章 JS JS 异步编程六种方案 JS基础—原型对象的那些事(一) JS基础—原型对象的那些事(二) CSS 综...

网友评论

      本文标题:JS基础

      本文链接:https://www.haomeiwen.com/subject/psaqottx.html