js语法基础
创始人
2024-05-24 09:52:03
0

js基础

###一、JavaScript基本介绍及发展趋势

ES5是2019年发布,在所有现代浏览器中得到了相当完全的实现

###二、编写JS及如何运行JS

1.在HTML普通标签中直接写入JS代码

写在标签上的 js 代码需要依靠事件(行为)来触发


点击一下试试
点一下试试看

2.在HTML文档中写入代码(script标签)

内嵌式的 js 代码会在页面打开的时候直接触发



3.在*.js文件中写入JS代码

外链式 js 代码只要引入了 html 页面,就会在页面打开的时候直接触发

// 我是 index.js 文件
alert('我是一个弹出层')





###三、变量及命名规则
####1.变量的申明与定义

var a = 10
let b = 10   //ES6 新增
const c = 10 //ES6 新增

####2.变量的命名规则
####3.关键字

varletconstbreakcasecatchcontinuedefaultdeletedoelsefinallyforfunctionifininstanceofnewreturnswitchthisthrowtrytypeofvoidwhilewith

###四、数据类型

  • 基础数据类型(原始数据类型)
  • 复杂数据类型(对象,引用类型,复合类型)

####1. 基础数据类型

  1. 数值类型(number)
    • 一切数字都是数值类型(包括二进制,十进制,十六进制等)
    • NaN(not a number),一个非数字
   var a = 1;// typeof a;->number
  1. 字符串类型(string)

    • 被引号包裹的所有内容(可以是单引号也可以是双引号)
   var str = 'hello'//typeof str ->string
  1. 布尔类型(boolean)

    • 只有两个(true 或者 false
  2. null类型(null)

    • 只有一个,就是 null,表示空的意思
  3. undefined类型(undefined)

    • 只有一个,就是 undefined,表示没有值的意思

####2. 复杂数据类型object

  1. 对象类型(object)

####3. 判断数据类型

  1. 既然已经把数据分开了类型,那么我们就要知道我们存储的数据是一个什么类型的数据
  2. 使用 typeof 关键字来进行判断
// 第一种使用方式
var n1 = 100;
console.log(typeof n1);//number // 第二种使用方式
var s1 = 'abcdefg';
console.log(typeof(s1));//string
console.log(typeof typeof n1);//string
console.log (typeof true);//boolean
console.log( typeof null);//object
console.log( typeof undefined);//undefined
console.log( typeof {});//object

####4. 判断一个变量是不是数字

  • 可以使用 isNaN 这个方法来判断一个变量是不是 不是数字
  • isNaNis not a number
// 如果变量是一个数字
var n1 = 100;
console.log(isNaN(n1)); //=> false// 如果变量不是一个数字
var s1 = 'Jack'
console.log(isNaN(s1)); //=> true

####5. 数据类型转换

  • 数据类型之间的转换,比如数字转成字符串,字符串转成数字,数字转成布尔等

####6. 其他数据类型转成数值

  1. Number(变量)
  • 可以把一个变量强制转换(显示转换)成数值类型
    • 可以转换小数,会保留小数
    • 可以转换布尔值
    • 遇到不可转换的都会返回 NaN(出现字母)
  1. parseInt(变量)
  • 从第一位开始检查,是数字就转换,直到一个不是数字的内容
    • 开头就不是数字,那么直接返回 NaN
    • 不认识小数点,只能获取整数
  1. parseFloat(变量)
  • 从第一位开始检查,是数字就转换,直到一个不是数字的内容

  • 开头就不是数字,那么直接返回 NaN

  1. 除了加法以外的数学运算

    • 运算符两边都是可运算数字才行
    • 如果运算符任何一边不是一个可运算数字,那么就会返回 NaN
    • 加法不可以用

####7. 其他数据类型转成字符串

  1. 变量.toString()
    • 有一些数据类型不能使用 toString() 方法,比如 undefinednull
  2. String(变量)
    • 所有数据类型都可以
  3. 使用加法运算
    • 在 JS 里面,+ 由两个含义
    • 字符串拼接: 只要 + 任意一边是字符串,就会进行字符串拼接
    • 加法运算:只有 + 两边都是数字的时候,才会进行数学运算

####8. 其他数据类型转成布尔

  1. Boolean(变量)
    • 在 js 中,只有 ''0nullundefinedNaN,这些是 false,其余都是 true
      ###五、运算符

就是在代码里面进行运算的时候使用的符号,不光只是数学运算,我们在 js 里面还有很多的运算方式
算术运算符
####1. 算术运算符

  1. +
  • 只有符号两边都是数字的时候才会进行加法运算
    • 只要符号任意一边是字符串类型,就会进行字符串拼接
  1. -
  • 会执行减法运算

  • 会自动把两边都转换成数字进行运算

  1. *
  • 会执行乘法运算
    • 会自动把两边都转换成数字进行运算
  1. /
  • 会执行除法运算
    • 会自动把两边都转换成数字进行运算
  1. %
  • 会执行取余运算
    • 会自动把两边都转换成数字进行运算
  1. **

    2**4----- 2的4次方
    比较运算符
    ####2. 赋值运算符

  2. =

    • 就是把 = 右边的赋值给等号左边的变量名
    • var num = 100
    • 就是把 100 赋值给 num 变量
    • 那么 num 变量的值就是 100
  3. +=

    var a = 10;
    a += 10;// a = a + 10
    console.log(a); //=> 20
    
    • a += 10 等价于 a = a + 10
  4. -=

    var a = 10;
    a -= 10;
    console.log(a); //=> 0
    
    • a -= 10 等价于 a = a - 10
  5. *=

    var a = 10;
    a *= 10;
    console.log(a); //=> 100
    
    • a *= 10 等价于 a = a * 10
  6. /+

    var a = 10;
    a /= 10;
    console.log(a); //=> 1
    
    • a /= 10 等价于 a = a / 10
  7. %=

    var a = 10;
    a %= 10;
    console.log(a); //=> 0
    
    • a %= 10 等价于 a = a % 10

####3. 赋值运算符

  1. ==

    • 比较符号两边的值是否相等,不管数据类型
    • 1 == '1'
    • 两个的值是一样的,所以得到 true
  2. ===

    • 比较符号两边的值和数据类型是否都相等
    • 1 === '1'
    • 两个值虽然一样,但是因为数据类型不一样,所以得到 false
  3. !=

    • 比较符号两边的值是否不等
    • 1 != '1'
    • 因为两边的值是相等的,所以比较他们不等的时候得到 false
  4. !==

    • 比较符号两边的数据类型和值是否不等
    • 1 !== '1'
    • 因为两边的数据类型确实不一样,所以得到 true
  5. >=

    • 比较左边的值是否 大于或等于 右边的值
    • 1 >= 1 结果是 true
    • 1 >= 0 结果是 true
    • 1 >= 2 结果是 false
  6. <=

    • 比较左边的值是否 小于或等于 右边的值
    • 1 <= 2 结果是 true
    • 1 <= 1 结果是 true
    • 1 <= 0 结果是 false
  7. >

    • 比较左边的值是否 大于 右边的值
    • 1 > 0 结果是 true
    • 1 > 1 结果是 false
    • 1 > 2 结果是 false
  8. <

    • 比较左边的值是否 小于 右边的值
    • 1 < 2 结果是 true
    • 1 < 1 结果是 false
    • 1 < 0 结果是 false
      ####4. 逻辑运算符
  9. && and

    • 进行 且 的运算
    • 符号左边必须为 true 并且右边也是 true,才会返回 true
    • 只要有一边不是 true,那么就会返回 false
    • true && true 结果是 true
    • true && false 结果是 false
    • false && true 结果是 false
    • false && false 结果是 false
  10. || or

    • 进行 或 的运算
    • 符号的左边为 true 或者右边为 true,都会返回 true
    • 只有两边都是 false 的时候才会返回 false
    • true || true 结果是 true
    • true || false 结果是 true
    • false || true 结果是 true
    • false || false 结果是 false
  11. !

    • 进行 取反 运算 !flag
    • 本身是 true 的,会变成 false
    • 本身是 false 的,会变成 true
    • !true 结果是 false
    • !false 结果是 true
      ####5. 自增自减运算符(一元运算符)
  12. ++

    • 进行自增运算

    • 分成两种,前置++后置++

    • 前置++,会先把值自动 +1,在返回

      var a = 10;
      console.log(++a);//++a 表达式的值的 
      // 会返回 11,并且把 a 的值变成 11
      
    • 后置++,会先把值返回,在自动+1

      var a = 10;
      console.log(a++);//a++ 表达式的值的 
      // 会返回 10,然后把 a 的值变成 11
      
  13. --

    • 进行自减运算
    • 分成两种,前置–后置–
    • ++ 运算符道理一样

###六、条件语句
####1. if 语句

  • 通过一个 if 语句来决定代码是否执行

  • 语法: if (条件) { 要执行的代码 }

  • 通过 () 里面的条件是否成立来决定 {} 里面的代码是否执行

    // 条件为 true 的时候执行 {} 里面的代码
    if (true) {alert('因为条件是 true,我会执行')
    }// 条件为 false 的时候不执行 {} 里面的代码
    if (false) {alert('因为条件是 false,我不会执行')    
    }
    // 如果代码块中代码只有一句,可以把花括号省略
    

####2. if else 语句

  • 通过 if 条件来决定,执行哪一个 {} 里面的代码

  • 语法: if (条件) { 条件为 true 的时候执行 } else { 条件为 false 的时候执行 }

  • 两个 {} 内的代码一定有一个会执行

    // 条件为 true 的时候,会执行 if 后面的 {} 
    if (true) {alert('因为条件是 true,我会执行')
    } else {alert('因为条件是 true,我不会执行')
    }// 条件为 false 的时候,会执行 else 后面的 {}
    if (false) {alert('因为条件为 false,我不会执行')
    } else {alert('因为条件为 false,我会执行')
    }
    

3. if else if … 语句

  • 可以通过 ifelse if 来设置多个条件进行判断

  • 语法:if (条件1) { 条件1为 true 的时候执行 } else if (条件2) { 条件2为 true 的时候执行 }

  • 会从头开始依次判断条件

    • 如果第一个条件为 true 了,那么就会执行后面的 {} 里面的内容
    • 如果第一个条件为 false,那么就会判断第二个条件,依次类推
  • 多个 {} ,只会有一个被执行,一旦有一个条件为 true 了,后面的就不在判断了

    // 第一个条件为 true,第二个条件为 false,最终会打印 “我是代码段1”
    if (true) {alert('我是代码段1')
    } else if (false) {alert('我是代码段2')           
    }// 第一个条件为 true,第二个条件为 true,最终会打印 “我是代码段1”
    // 因为只要前面有一个条件满足了,就不会继续判断了
    if (true) {alert('我是代码段1')
    } else if (true) {alert('我是代码段2')
    }// 第一个条件为 false,第二个条件为 true,最终会打印 “我是代码段2”
    // 只有前一个条件为 false 的时候才会继续向后判断
    if (false) {alert('我是代码段1')
    } else if (true) {alert('我是代码段2')
    }// 第一个条件为 false,第二个条件为 false,最终什么也不会发生
    // 因为当所有条件都为 false 的时候,两个 {} 里面的代码都不会执行
    if (false) {alert('我是代码段1')
    } else if (false) {alert('我是代码段2')
    }
    

4. if else if … else 语句

  • 和之前的 if else if ... 基本一致,只不过是在所有条件都不满足的时候,执行最后 else 后面的 {}

    // 第一个条件为 false,第二个条件为 false,最终会打印 “我是代码段3”
    // 只有前面所有的条件都不满足的时候会执行 else 后面的 {} 里面的代码
    // 只要前面有一个条件满足了,那么后面的就都不会执行了
    if (false) {alert('我是代码段1')
    } else if (false) {alert('我是代码段2')
    } else {alert('我是代码段3')
    }
    

5. SWITCH 条件分支结构(重点)

  • 也是条件判断语句的一种

  • 是对于某一个变量的固定值判断

  • 语法:

/*switch (要判断的变量) {case 情况1:  //要判断的变量 === 情况1 情况1要执行的代码breakcase 情况2:情况2要执行的代码breakcase 情况3:情况3要执行的代码breakdefault:上述情况都不满足的时候执行的代码}default 默认case 情况break 中断switch 开关*/
  var week = 1switch (week) {case 1://week===1alert('星期一')breakcase 2:alert('星期二')breakcase 3:alert('星期三')breakcase 4:alert('星期四')breakcase 5:alert('星期五')breakcase 6:alert('星期六')breakcase 7:alert('星期日')breakdefault:alert('请输入一个 1 ~ 7 之间的数字')}

6. 三元运算(扩展)

  • 三元运算,就是用 两个符号 组成一个语句

  • 三元运算只是对 if else 语句的一个简写形式

  • 语法: 条件 ? 条件为 true 的时候执行 : 条件为 false 的时候执行

    var age = 18;
    age >= 18 ? alert('已经成年') : alert('没有成年')
    

###七、循环结构
####1. FOR 循环

  • whiledo while 循环都不太一样的一种循环结构

  • 道理是和其他两种一样的,都是循环执行代码的

  • 语法: for (var i = 0; i < 10; i++) { 要执行的代码 }

    // 把初始化,条件判断,自身改变,写在了一起
    for (var i = 0; i < 10; i++) {// 这里写的是要执行的代码console.log(i)
    }// 控制台会依次输出 0 ~ 9 
    

2. WHILE 循环

  • while,中文叫 当…时,其实就是当条件满足时就执行代码,一旦不满足了就不执行了

  • 语法 while (条件) { 满足条件就执行 }

  • 因为满足条件就执行,所以我们写的时候一定要注意,就是设定一个边界值,不然就一直循环下去了

    // 1. 初始化条件
    var num = 0;
    // 2. 条件判断
    while (num < 10) {// 3. 要执行的代码console.log('当前的 num 的值是 ' + num)// 4. 自身改变num = num + 1
    }
    
    • 如果没有自身改变,那么就会一直循环不停了
      ####3. DO WHILE 循环
  • 是一个和 while 循环类似的循环

  • while 会先进行条件判断,满足就执行,不满足直接就不执行了

  • 但是 do while 循环是,先不管条件,先执行一回,然后在开始进行条件判断

  • 语法: do { 要执行的代码 } while (条件)

    // 下面这个代码,条件一开始就不满足,但是依旧会执行一次 do 后面 {} 内部的代码
    var num = 10
    do {console.log('我执行了一次')num = num + 1
    } while (num < 10)
    

####4.BREAK 终止循环(常用)

  • 在循环没有进行完毕的时候,因为我设置的条件满足,提前终止循环

  • 比如:我要吃五个包子,吃到三个的时候,不能在吃了,我就停止吃包子这个事情

  • 要终止循环,就可以直接使用 break 关键字

  • 结束整个循环,break所在的循环完全结束了

    for (var i = 1; i <= 5; i++) {// 每循环一次,吃一个包子console.log('我吃了一个包子')// 当 i 的值为 3 的时候,条件为 true,执行 {} 里面的代码终止循环// 循环就不会继续向下执行了,也就没有 4 和 5 了if (i === 3) {break}
    }
    

####5. CONTINUE 结束本次循环

  • 在循环中,把循环的本次跳过去,继续执行后续的循环

  • 比如:吃五个包子,到第三个的时候,第三个掉地下了,不吃了,跳过第三个,继续吃第四个和第五个

  • 跳过本次循环,就可以使用 continue 关键字

    for (var i = 1; i <= 5; i++) {// 当 i 的值为 3 的时候,执行 {} 里面的代码// {} 里面有 continue,那么本次循环后面的代码就都不执行了// 自动算作 i 为 3 的这一次结束了,去继续执行 i = 4 的那次循环了if (i === 3) {console.log('这个是第三个包子,掉地下了,我不吃了')continue}console.log('我吃了一个包子')
    }
    

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...