JS变量、js语法、运算符和逻辑运算

134 阅读5分钟

JS变量、js语法、运算符和逻辑运算

目录

一、 变量

二、值

三、语法

四、运算符

五、逻辑运算

六、 判断

一、 变量

JS文件

  • 外部文件:<script src='xxx.js'> </script> 引入名为xxx.js的外部文件
  • 内部文件:在<script></script>标签内部填写JS代码即为内部文件
  • 假如又写src又在标签内部写了代码,那么只执行外部文件
  • 有时候<script lang="tgp"> 语言类型会故意写成其他字符,让其内部代码不运行,需要用到时再详细写

变量是什么

  • 变量是容器,用来存储数据,以便后续使用数据
  • 声明变量的方法:var a = 3let b = 4const c = {a:1,b:2} var、let、const都是声明变量的关键字
  • 声明变量就是在内存内为变量申请一个存储空间
  • 声明变量时的等号并非运算符,而是把等号后面的值赋给前面的变量
  • PS:JS语句尽量用分号结束,JS解释器按照分号来识别一行语句,最好写分号

变量命名规范

  • 不能以数字开头,可以用字母,下划线,$符号来开头
  • 除开头外其他字符可以为数字
  • 关键字、保留字不能用于变量命名
  • 语义化,变量命名一定要有意义,或者有结构化
  • 企业中一般都有明确的命名规定,如JS_header、J-header
  • 命名需要遵循小驼峰法,首个单词字母小写,后续单词首字母大写
  • 尽量不要用拼音或拼音缩写命名,上班会被同事锤

二、值

  • js中值分为原始值和引用值(数据类型)

原始值

  • 原始值又叫基本类型
  • 包含Number、String、boolean、undefined、null、Symbol、Biging
  • JS是通过值来确定类型,例如var a = 1 // Number类型var b = 'hi' // String类型
  • 这种语言又叫做弱类型语言,一般弱类型语言都是动态语言,一般动态语言都是脚本语言,例如JS、PHP
  • 强类型语言需要先确定类型再声明值,所以强类型语言又叫静态语言,编译型语言一般都是强类型语言

布尔值

  • true真、false假
  • 计算机的世界里只有非真既假,非假既真

undefined

  • 一般指未被定义的,例如var a 这里的a此时就是undefined

null

  • null代表空值,一般在初始化组件、函数、销毁函数、占位、等地方会用到

引用值

  • JS中引用值只有Object一种
  • Object中有Array、function、date、ReaExp(正则表达式)

栈内存和堆内存

  • 栈内存 Stack,堆内存 Heap
  • 栈内存,存放原始值,先进后出,永久保存不可更改,如果某个基本类型被重新赋值,那就会在栈内存中重新开辟空间存放
  • 堆内存,存放引用值,把地址存在栈内存,或者说指向栈内存

三、JS语法

语句

  • 语句用分号区分,也可以不加,JS会自动帮你添加分号
  • for、if、switch、function语句不加分号
  • 运算符两边都有空格

错误

  • 语法错误:出现语法错误时,在错误代码同一作用域内的所有代码一行都不会执行,SyantaxError
  • 通用错误:出现通用错误,错误代码后续的代码不会执行,ReferenleError
  • 代码块与代码块之间的错误不会相互影响

四、运算符

  • 括号运算 > 普通运算 > 赋值

+ 加号 数字运算

  • 任何数据类型的值 + 字符串都等于字符串(字符串拼接)

  • 'str' + 1 = 'str1'

/ 除号运算符

  • 0 / 0 等于 NaN
  • NaN是数字类型但它不是一个明确的数字
  • 1 / 0等于 infinity 正无穷 它也是数字类型同样的 - infinity 也是

% 取余预算符

  • 5 % 2 = 1 5除2还剩1

交换值的方法

  • 一般可以用中间变量let a = 1;let b = 2let c = a; let a = b 即可交换

  • 假如不用中间变量,可以a = a + b; b = a - b 此时b = a 再用a = a - b 即可交换

++--运算符

  • var a = 1 a = a + 1a++的效果是一样的

  • console.log(a++) // a = 1 a++,先打印后运算

  • console.log(++a) // a = 2 ++a,先运算后打印

  • 需要注意看符号在哪里

  • 代码:

  • let a = 4;
    let b = --a + a++ 
    console.log(a,b) // (4,6)
    

><>=<=比较运算符

  • let bool = 1>2 bool = false 因为1不大于2
  • 纯数字,number直接和number进行比较
  • 数字和字符串,先把string转换成number再让number和number之间进行比较
  • 字符串和字符串,比较的是字符串对应的ASCII码(网上查)

=====比较运算符

  • 相等: == 不看数据类型,只要值相等,就想等 num 1string '1'相等
  • 全等: === 既要看数据类型,又要看值,开发基本都用这个
  • NaN !== Nan // true NaN 与包括自己在内的任何东西都不相等

&&||!逻辑运算符

  • 假值有:undefined、null、NaN、''、0、false,除了这几个值外其他值都为真

  • && 是并且的意思,&&两边都必须满足条件才行,优先级要大于||

  • 遇到真值往后走,遇到假值或走到最后则返回当前值

  • let a = 1 && 2 && undefined && 10 a返回undefined

  • ||是或者,||两边有一边满足条件即可

    • 遇到假值外后走,遇到真值或走到最后,返回当前值
    • let a = 0 || null || 1 || 0 a 返回 1
  • ! 代码:let a = !1 // false 因为 1 是 true,1的反值为false