变量、常量 和 数据类型、数据类型转换 和 运算符(进制转换)、浏览器端函数、程序的流程控制概述

变量声明:

1. 使用关键字 var 声明变量

  var id=108,title=‘小米air’;

2. 使用 “=” 为变量赋值

3. 没有初始化的变量自动取值为undefined

4. 可以先声明,后赋值

5. 赋值后可以再次变动(是一个可变值)

 

常量的声明

1. 使用关键字 const 声明变量

2. 声明就要赋值,赋值后不能再次改动

 

变量的命名规范:

1. 可以包含字母、数字、下划线(_)、美元符号($)

2. 不能以数字开头

3. 常用于表示函数、变量等的名称

4. 名称最好有明确的含义

5. 可以采用“匈牙利命名法”、“下划线命名法”、“小驼峰命名法”或者“大驼峰命名法”之一,在开发团队内进行协调统一

 

 

数据类型:

 

 

检测数据类型关键字:typeof

 原始类型:

1. number 类型

  数字类型既可以表示32位的整数,也可以表示64位的浮点数

  整数→ 十进制:逢十进一的整数,如1234567890

      八进制:逢八进一的整数,如012345670

        十六进制:逢十六进一的整数,如0x123456789abcdef0

  浮点数→ 使用小数点记录数据,如95.5,3.1415926

       使用指数记录数据,如4.3e23,4.3E-23

2. 字符串类型

  表示一系列的文本字符数据,如性别、姓名、住址等

  由Unicode 字符、数字、标点符号组成的序列

  console.log('一'.charCodeAt());   #检测汉字的Unicode 码

  JavaScript 不像 java严格区分字符和字符串类型

  首尾由一对单引号或双引号括起来

3. Boolean 类型

  仅有两个值:true 和 false(也代表1和0)

  实际运算中true == 1,false == 0

4. undefined

  语义:‘不存在该数据’。声明了变量但从未赋值,或者对象属性不存在

5. null

  空值,常用于清空一个对象

 

数据类型转换:

JavaScript 属于弱类型语言:1. 变量在声明时不需要指定数据类型

             2. 变量由赋值操作确定数据类型

             3. 某个变量可以先后赋值为不同类型的值

不同类型数据在计算过程中会自动进行转换

 

数字 + null:null转为数值0

数字 + undefined:NaN(不是一个数字),undefined没有成功转为一个数值,所以相加等于NaN

NaN 和任何值运算,都返回NaN,不包括和字符的相加

隐式转换:(加减乘除的转换)

  减乘除自动调转Number转数字类型;加法(字符串和数字),符号两端有字符串则转为字符串,符号没有字符串则转为数字类型

  如果转数值自动的调用number函数

  加号作用:1.字符串的拼接:加号的两侧有一个值为字符串;2.加法运算。

 

 

 

 

 

 

 

 

数据类型(强制转换)转换函数:

1.toString() → 转换成字符串,所有数值和布尔型转换为string 类型

2.parseInt() → 解析出一个string 或 number 的整数部分

         如果没有可以转换的部分(主要看开始部分是不是数字),则返回NaN(Not a Number)

3.parseFloat() → 解析出一个string 的浮点数部分

        如果没有可以转换的部分,则返回NaN

4.Number() → 把一个string 解析为number

        如果包含非法字符,则返回NaN

 

 

 

运算符

表达式指 可以用于计算的式子,即可能产生一个值的式子

 

 1. 算数运行符

加(+)、减(-)、乘(*)、除(/)、求余(%)表示求余运算,或者称为取模运算

- 可以表示减号,也可以表示负号;+ 可以表示加法,也可以用于字符串的连接

  

涉及自增 和 自减 (++在前先赋值再打印,++在后先打印结果后赋值),自增和自减只相对于一个变量,不能是一个数值,如果是一个字符串的变量也会进行自增,启动隐式转换将字符串转换为数值进行自增

 

2. 关系运行符

用于判断数据之间的大小关系

> 大于     < 小于     >= 大于等于   <= 小于等于    == 等于()     === 全等(类型和值都要相同)    != 不等于     !== 不全等

  2-1. 关系表达式的值为Boolean类型(“true” 或者 “false”);

  2-2. 两个值都是字符的时候,比较的是首字符的Unicode码;

  2-3. 数值和字符,字符直接隐式转数值进行比较

  2-4. 数值和字符比较(字符中有非数值例如3a),因为隐式转换就是调用Number,Number中只要含有非数字都返回NaN,NaN和任何值(除字符串,因为字符串是拼接)比较都是NaN

  2-5. 总结:若参加关系运算的两个数据类型不同,则会发生“隐式类型转换”,统一为相同类型后才能进行比较

 

     全等运算不会发生“隐式转换”,只要两个数据类型或者数值之一不同,即判定为不相等

isNaN 函数:isNaN() 用于把NaN 与任何值(包括其自身)相比得到的结果均是false,所以要判断某个值是否是NaN 不能使用 == 或 === 运算符。只能使用isNaN() 函数;通常用于检测类型转换函数的运算结果,以判断它们表示的是否是合法的数字

   

 

3. 逻辑运算符      逻辑非(取反)==》!        逻辑与(并且)==》&&        逻辑或(或者)==》||

     关于短路逻辑(对于&& 运算:false && ? => false;对于 || 运算:true || ? =>true)

 

  

  只有前边为true 才会执行后面

  

 
&& 的优先级高于 ||  ,如下,如果左侧红框先执行,再执行右侧红框

 

 

 但是()的优先级更高:

 

 

运算符的优先级表格如下:

 

 

4.位运算符      位运算是将数字以二进制形式进行运算(逢二进一),例如下十进制和二进制之间的转换(结果为32+4+2=38)

   

4-1 按位与 & 上下两位都是1,结果是1,否则是0 ==》

例1:console.log(5&7);# 5转二进制4+1(101),7是4+2+1(100+10+1=1111),先转成二进制在进行运算(上下两位进行比较)

再转就是5

 

 

 例2: console.log(5&12);# 5转二进制4+1(101),12是8+4(1000+100=1100),先转成二进制在进行运算(上下两位进行比较),上下位数不对齐时,前面自动补 0 对齐

再转就是4

 

 

4-2. 按位或 |  上下两位含有1,结果是1,否则是0 ==》

:console.log(9|17);#9转二进制8+1(1000+1=1001),17就是16+1(10000+1=10001)

再转回来就是25

4-3 按位异或 ^  上下两位不同为1,相同为 0 ==》

 

 :console.log(5^12);#5转二进制4+1(1000+1=1001),12就是8+4(1000+100=1100)

再转回来就是9

 

 

 4-4 按位右移 >> 删除二进制后的最后一位或者多位,每次缩小到原来的一半或者更多 

     按位左移 << 在二进制的最后添加0,成倍增加 

例右移:console.log(49>>1);#49转二进制32+16+1(100000+10000+1=110001)

110001去掉最后一个1,往右移动,成为11000,再转回来也就是10000+1000=16+8=24

例右移:console.log(49>>2);#49转二进制32+16+1(100000+10000+1=110001)

110001去掉最后两位,往右移动,成为1100,再转回来也就是1000+100=8+4=12

例左移:console.log(3<<1);#3转二进制11

11往左移动1位,补0,成为110,再转回来也就是6

 

5. 赋值运算

   = 用于为变量赋值 

 

 在绝大多数编程语言中,a+=3 由于运行时可以进行优化,执行效率都要优先于a=a+3;

  

 7. 条件(三目)运算   ?:

需要对三个表达式进行运算===》表达式1 ? 表达式2:表达式3

其中表达式1 的值应是Boolean 类型,表达的含义是如果表达式1 为true,则整个表达式的值为表达式2的值,若表达式1为false,则整个表达式的值为表达式3 的值

 

8. 浏览器端函数(只能再浏览器中运行)

#弹出警示框(不带input)    alert("弹出的警示消息");

#弹出提示框 (带input输入框,变量接收后可再控制台打印接收,类型是字符串,点击取消返回null)   

prompt("弹出的提示消息");

 

posted on 2021-07-28 09:10  一名小学生呀  阅读(86)  评论(0)    收藏  举报

导航