ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

js中基础和for执行过程

2021-08-27 13:03:36  阅读:84  来源: 互联网

标签:变量 ++ 基础 js num var 执行 true


变量

  • 什么是变量呢?

    a. 变量就是可变化的量

    b. 变量是在内存中开辟一块空间, 将值和变量名关联起来-

  • 如何声明变量?

    a. var 变量名 = 值

常量

  • 什么是常量?

    a. 不可变化的量

  • 如何声明呢?

    a. const 变量名 = 值

数据类型(上方提到值的类型)

  • 原始数据类型

    • undefined类型
      • 未定义类型 [变量声明时 指向undefined]
    • null类型
      • 空对象类型 null指向空对象的地址(就是空)
    • string 字符串
      • 可以存储各种字符
    • boolean 布尔
      • 只有两个值 true false
  • 引用数据类型(后面的笔记中会有,后三个比较特殊)

    • 函数 Function

    • 对象 Object

    • 数组 Array

    • 日期 Date

    • 错误 Error

    • Number

      • 存储数字 整数 负数 小数 都可以存储
    • 字符串 String

    • Boolean

      • 只有两个值 true false

数据类型的隐式转换

a, ' ' + 2 // output: ' 2' 字符串和任何数据类型相加都属于字符拼接
b, true + 2 // output: 3 布尔类型和数字之间运算会先将布尔类型转化为数字类型 true 1 false 0
c, false + 2
d, undefined + 2 // output: NaN undefined 和数字运算 undefined永远都是NaN 而NaN和数字运算都是NaN
e, null + 2 // output: 2 null 和数字运算转为0
f, true + null // null 布尔类型 运算都转为数字类型
g, ' ' + false // 字符串拼接

运算符

    • (和数字表示加法 遇到字符串表示拼接)
    • (和数字表示减法 遇到字符串尝试转为数字 如果字符串内不是数字返回NaN)
    • (...)
  1. / (...)
  2. % (取余数) ==>(整除 m%n == 0 不整除 m%n != 0)
  3. 自增 ++
    前缀: ++n 先自增后赋值
    后缀: n++ 先赋值后自增
var a, b, n=10;
a = n++ //  10 此时是先把n赋值给a 然后执行的 n++
// 此时n++ 是 11
b = ++n // 12  // n先自增 然后赋值给n

赋值运算符

  num += 1 // num = num + 1
  num -= 1 // num = num - 1
  num *= 1 // num = num * 1
  num /= 1 // num = num / 1

逻辑运算符

与 && // 条件都为true 返回true

  var a = 1;
  var b = 2;
  console.log(a > b && b > a)    // 思考a > b 和 b > a是不是为真  如果两个结果都是真最后返回真  output: false

或 || // 有一个条件为true 返回true

  var a = 1;
  var b = 2;
  console.log(a < b && b < a)    // 思考a > b 和 b > a是不是为真  如果两个结果有一个为真最后返回真  output: true  
  // 短路逻辑: 如果有一个为真  后面的都不看了直接返回true

非 ! // 取反

比较运算符

  - ==   // 比较值
  - ===  // 比较数据类型和值
  - >    
  - <
  - >=
  - <=

流程控制

if

var num = 10;
if(num < 10>){ // 此条件为真执行{}中的代码
  console.log('小了')
}else if(num > 10){// 此条件为真执行{}中的代码
  console.log('打了')
}else{// 如果以上条件都不为真 执行else{}中的代码
  connsole.log('对了')
}

switch // 确保值是固定数据类型和值时使用switch

  var num = 0
  switch(num){
    case 0: // 数据类型和值都为0 时执行':'后 和'break;'  中的代码块
      conosle.log('0')
      break;
    case 2:
      conosle.log('2')
      break;
    default:
      console.log('以上条件都不为真时执行我......')

      break;
  }

while

var num = 0;
while(num < 100){  // 如果此条件成立 执行{}中的代码
  console.log(num)
  num ++ // 如果不更新变量 就会发生死循环的情况(就是没有结束条件一直循环下去) 
}

/*
使用循环三要素:(比较重要)
  1, 初始变量   // 用于判断执行多少次的初始化变量 
  2, 终止条件   // 循环之前写好什么时候终止循环否则就会陷入死循环
  3, 变量更新   // 每次执行一次循环后更新比变量


*/

do while

1, 循环前都会执行一次do{}后的代码块, 然后进入while()中的判断 如果为真继续执行

var num = 0;
do{
  console.log(num) 

  num += 1
}while(num<2)

分析:
  // 第1次循环num的值为0-> 打印num 执行完后进入while()如果条件为真  继续执行 
  // 第2次循环num的值为1-> 打印num 执行完后进入while()这次条件为false 不继续执行while中 终止循环

for(可以暂把for看做while 的简化版)


伪代码:
/*
使用循环三要素:(比较重要)
  1, 初始变量   // 用于判断执行多少次的初始化变量 
  2, 终止条件   // 循环之前写好 什么条件下执行循环中的代码块
  3, 变量更新   // 每次执行一次循环后更新比变量
*/
for(初始化变量; 终止条件; 变量更新){
  代码块...
}
真代码:
for (var num = 0;num < 5;num++>){
  console.log(num)
}
解析:
1,js解释器读for中的内容 var num = 0  声明个变量当做初始化变量, 此变量只在js读到这里是生成  后续循环不会执行声明变量
2, 第一次循环:
  js拿到num 判断是否小于5 第一次执行num为0 0 < 5 结果为true 所以开始执行代码块中的内容, 打印num   , 然后num++
3, 第二次循环:
  此时js拿到 num 值为 1(因为上次代码块执行结束后执行了num++) 继续判断 num = 1是否小于5 结果为true  继续执行代码块中的内容
  打印num, 然后 num++
4, 第三次循环:
  此时js拿到 num的值为 2(因为上次代码块执行结束后执行了num++)  继续判断 num = 2是否小于5 结果为true  继续执行代码块中的内容
  打印num, 然后 num++
5, 第四次循环:
  此时js拿到 num的值为 3(因为上次代码块执行结束后执行了num++)  继续判断 num = 3是否小于5 结果为true  继续执行代码块中的内容
  打印num, 然后 num++
6, 第五次循环:
  此时js拿到 num的值为 4(因为上次代码块执行结束后执行了num++)  继续判断 num = 4是否小于5 结果为true  继续执行代码块中的内容
  打印num, 然后 num++
7, 第六次执行(因为没有进入循环中所以我才这样写 ):
  此时js拿到 num的值为 5(因为上次代码块执行结束后执行了num++)  继续判断 num = 5是否小于5 结果为false  终止循环
  

for循环嵌套

  • for中又写一个for循环 是如何执行呢?


for (var num1 = 1; num1 < 10; num1++){
  for (var num2 = 1; num2 <=10; num2++){
    console.log(num2)
  }
  console.log('上方for循环结束后,才执行到我这行代码')
}
// 第一层循环 进去代码块   代码块中又有一个for循环 此时代码块中的for循环开始执行
第二层for循环接受后才会执行       for循环代码块下方的代码 

标签:变量,++,基础,js,num,var,执行,true
来源: https://www.cnblogs.com/pythonkyle/p/15193274.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有