JS

  • 1.概述
  • 2.开发环境
  • 3.JS的语法规范
  • 4.变量与常量
    • 4.1常量
    • 4.2 变量
  • 5.数据类型
      • **typeof 检测数据类型**
    • 5.1原始类型
      • (1)数值型
      • (2)字符串型
      • (3)布尔型
      • (4)未定义型
      • (5)空
    • 5.2 引用类型:对象、数组
    • 5.3数据类型转换
      • 1)隐式转换
      • 2)强制转换
  • 6.运算符
    • (1)算术运算符
    • (2)※比较运算符(等于与===)
    • (3)※逻辑运算符(短路逻辑)
    • (4)位运算符
    • (5)赋值运算符
    • (6)三目运算符 ? :
  • 7.逻辑结构
    • 7.1 条件语句:
    • 7.2 循环

1.概述

(1)历史
1995年,JS最早出现在NetScape的浏览器中
1996年,IE3中也出现了JS的克隆版,称作JScript
1997年,EMCA组织制定了JS的标准规范ECMAScript
2009年,JS遵循CommonJS规范,开始向服务器端发展

(2)现状
JS既可以运行在客户端浏览器,也可以运行在服务器端

(3)特点

  1. 解释型语言,编译一行执行一行
  2. 弱类型语言
  3. 基于对象
  4. 跨平台性

(4)应用场景
开发浏览器端的交互效果
服务器端开发

2.开发环境

(1)浏览器端:自带的JS解释器

(2)服务器端:Node.js

(3)运行JS
5. 浏览器
创建01.js和01.html,将js文件嵌入到html中
<script src="01.js"></script>
6. 服务器端 Node.js
node 拖拽文件 回车

3.JS的语法规范

a. 区分大小写
b. 每行结束的分号可以省略
c. 分为单行注释(//…)和多行注释(//)

4.变量与常量

4.1常量

常量:用于存储数据的容器
例如 const pi=3.14

常量一旦声明必须赋值,不允许重新赋值

4.2 变量

变量:用于存储数据的容器

var a = 1
使用var声明变量,在内存中开辟空间名称为a,然后把1存入。

(1)变量的命名规则

  • 变量的名称可以由字母、数字、下划线、美元符号组成
  • 不能以数字开头
  • 不能使用关键字

(2)变量的赋值

  1. 变量声明后未赋值则为undefined(未定义),这表示一个空值
  2. 变量可以被多次赋值,赋不同类型的值,这是弱类型语言的特点

5.数据类型

数据类型分为原始类型引用类型

原始类型分为数值型、字符串型、布尔型、未定义型(undefined)、空(null)

typeof 检测数据类型

‘number’
‘string’
‘boolean’
‘undefined’
‘object’

示例一:

var a;
//typeof(a) = "undefined"
console.log(typeof(typeof(a)));//string

5.1原始类型

(1)数值型

  • 整型
    10进制
    1 2 3 … 7 8 9 10 … 15 16
    8进制,以0开头的数字,例如010
    1 2 3 … 7 10 11 12
    16进制,以0x开头的数字,例如0xa 不区分大小写
    1 2 3 … 7 8 9 a … f 10
  • 浮点型
    3141.5e-1
    314.15
    31.415e+1

(2)字符串型

被引号包含的数据就是字符串型,不区分单双引号

查看任意一个字符的Unicode码 's'.charCodeAt()

(3)布尔型

true和false,代表真和假,表示只有两个结果的数据.

(4)未定义型

undefined
声明了变量未赋值则为undefined,属于一种空值

(5)空

值null
类型是object(对象),常结合引用类型数据使用

5.2 引用类型:对象、数组

JavaScript(三)——对象与数组及API
JavaScript(四)——具体对象(Math、字符串对象、Date对象、Number对象及Boolean对象)

5.3数据类型转换

加号(+)的作用

(1)加法运算
(2)字符串之间的拼接

数据类型转换分为隐式转换强制转换

1)隐式转换

隐式转换为数值自动的调用函数Number()

NaN:Not a Number,不是一个数字,是在将数据转数值的时候失败的结果,和任何的值执行数学运算结果还是NaN

(1)数字+字符串 数字转为字符串
2 + '1' //'21'
"6"- 3 = 3//-*÷隐式转换,结果为数值型

(2)数字+布尔型 布尔型转为数值
true-1 false-0
1+true //2
1+false //1

(3)字符串+布尔型 布尔型转为字符串
'5'+true //'5true'

示例一:

//"11"*2=22,隐式转换,结果是数字类型,-*÷等结果转换为数字
console.log(11+"11"*2===33); //true

+ - 会将变量隐式转换为数值型

var a;
typeof(+a);//"number"

示例二:

var a=2,b=true,c='tedu';
console.log(a+b+c); //'3tedu'
console.log(b+c+a); //'truetedu2'
console.log(c+a+b); //'tedu2true'

2)强制转换

(1)强制转换为数值 Number()

Number(true) //1
Number(false) //0
Number('2') //2
Number('2a') //NaN
Number(undefined) //NaN
Number(null) //0

(2)强制转换为整型 parseInt()
通常用于将小数和字符串转为整型,其它的转换为NaN

parseInt(8.9)  //8
parseInt('3.14') //3
parseInt('6.18a') //6
parseInt('a6.18') //NaNparseInt(true);//NaN

(3)强制转换为浮点型 parseFloat()

通常用于将字符串转为浮点型,其它的转换为NaN

parseFloat('5.18') //5.18
parseFloat('7a') //7
parseFloat('a4.13') //NaN
parseFloat(5);//5

(4)将数值和布尔型强制转为字符串toString()

var num = 2;
num.toString()  //'2'

6.运算符

表达式:由数据或者由运算符连接的操作数据组成的形式称作表达式

运算符分为

  • 算术运算符
  • 比较运算符
  • 逻辑运算符
  • 位运算符
  • 赋值运算符
  • 三目运算符

(1)算术运算符

整个算术运算符都会将数据隐式转换为数值型
+ - * / % ++ -- %

(2)※比较运算符(等于与===)

> < >= <= ==(等于) != ===(全等于) !==(不全等于)

NaN和任何值比较(> < >= <= == ===)结果都是false

3 >'10'   //字符串转为数值
'3'>'10'  //两个字符串比较,比较的是首个字符的Unicode码('s'.charCodeAt())//10a转换成数字为NaN
3>'10a' //false
3<'10a' //false
3=='10a' //false
NaN==NaN //false

== 等于,只是比较值是否相同,可能会发生隐式转换
=== 全等于,先比较类型,然后再比较值
!= 不等于,比较值不等于
!== 不全等于,类型不同或者值不同

console.log(2=='2');//true
console.log(2==='2');//falseconsole.log(1==true);//true
console.log(1==='true');//falseconsole.log(undefined == null);//true
console.log(undefined === null);//false

(3)※逻辑运算符(短路逻辑)

&& || !

  • && 逻辑与,关联的两个条件都是true结果是true,否则是false
  • || 逻辑或,关联的两个条件有一个是true结果是true,否则是false
  • ! 取反

链接:JS逻辑运算符——短路逻辑

(4)位运算符

模拟计算机底层的运算,先将数据转为二进制,然后进行运算,当运算完再把结果转回成十进制。
1 2 3 4 5 6 7
1 10 11 100 101 110 111

&  按位与,上下两位比较,如果都是1结果是1,否则是0
|   按位或,上下两位比较,如果含有1结果是1,否则是0
^  按位异或,上下两位比较,不同是1,相同时0
>>   按位右移,删除末尾的位数
<<   按位左移,在末尾补0
4>>1
10010//右移一位5&7        8|13     7^12101        1000     0111111        1101     1100————       ————     ———101        1101     1011

(5)赋值运算符

= += -= *= /= %=
运算赋值:先执行运算,再执行赋值
+==x += y= x = x + y ,其他同理

(6)三目运算符 ? :

  1. 一目运算符:由一个运算符连接的一个操作数据或者表达式 ++ – !
  2. 二目运算符:由一个运算符连接的两个操作数据或者表达式
  3. 三目运算符:由两个运算符连接的三个操作数据或者表达式

三目运算符适用:结构简单语句,否则使用if-else
区别是三目运算有返回值

条件表达式 ? 表达式1 : 表达式2

7.逻辑结构

7.1 条件语句:

  • if 语句 - 只有当指定条件为 true 时,使用该语句来执行代码

  • if…else 语句 - 当条件为 true 时执行代码,当条件为 false 时执行其他代码

  • if…else嵌套语句- 使用该语句来选择多个代码块之一来执行

  • switch …case语句 - 使用该语句来选择多个代码块之一来执行

switch(表达式){case 值1:语句块1break;case 值n:语句块n break;default:语句块n+1   //表达式和case后的值都不相同
}

对比if-else嵌套和switch-case的区别

相同
两者都可以用于多项判断

不同
if-else既可以进行等于,也可以进行不等于的比较;
switch-case只能进行全等于的比较;
if-else的适用范围更加广泛,
switch-case结构上更为清晰,执行效率更高。


以下数据作为条件表达式会隐式转换为false
0 '' undefined null NaN

var s = '';
if (s=='') {console.log('这家伙很懒,什么也没留下');
}

7.2 循环

循环是一遍又一遍执行相同或者相似的代码
循环的两个要素

  1. 循环条件:控制循环是否要继续执行
  2. 循环体:要执行的相同或者相似的代码
  • for - 循环代码块一定的次数
for (初始值; 循环条件; 增量) {循环体
}
  • for/in - 循环遍历对象的属性
  • while - 当指定的条件为 true 时循环指定的代码块

while (循环条件) {循环体
}
  • do/while - 同样当指定的条件为 true 时循环指定的代码块
do{循环体
}while(循环条件);

关键字:

  • break 语句用于强制结束循环。

  • continue 用于跳过循环中的一个迭代。

JavaScript(一)——变量,数据类型及转换、运算符和逻辑结构相关推荐

  1. JavaScript获取变量数据类型

    JavaScript前文回顾: 认识JavaScript到初体验 JavaScript 注释以及输入输出语句 JavaScript变量的使用.语法扩展.命名规范 JavaScript数据类型简介以及简 ...

  2. python学习笔记1-print()函数与变量+数据类型与转换+条件判断与条件嵌套+input()函数

    print()函数与变量 1.基本句式 print('千寻') 2.引号的用法 3.转义字符 print('let\'s go') 4.变量和赋值 5.小结 数据类型与转换 字符串 整数 浮点数 数据 ...

  3. javascript 变换变量 数据类型 类型转换 运算符 运算表达式 运算优先级 理解笔记...

    变换变量(两种方法) 问:有A,B两个变量,现在怎么让A,B两个变量的值互换? 答:1.定义第三个变量  取出存取A,B变量的值 代码:var a = 10; var  b = 20; var  c ...

  4. JAVA基础之变量(数据类型及其转换)

    变量 变量的概念: 内存中的一个存储区域: 该区域的数据可以在同一类型范围内不断变化: 变量是程序中最基本的存储单元.包含变量类型.变量名和存储的值. 变量的作用: 用于在内存中保存数据. 使用变量注 ...

  5. 前端-JavaScript1-6——JavaScript之变量类型的转换

    6.1 string → number 先来学习一个语句,这个语句和alert差不多,也是弹窗,弹的是输入框: 1    prompt("请输入你的电话","139&qu ...

  6. JavaScript判断变量数据类型

    一.JS中的数据类型 1.数值型(Number):包括整数.浮点数. 2.布尔型(Boolean) 3.字符串型(String) 4.对象(Object) 5.数组(Array) 6.空值(Null) ...

  7. 类型转为数字_JavaScript自动数据类型的转换

    JavaScript自动数据类型的转换 运算符 算术运算符 +,-,*,l,%(取余数) 关系运算符 .<=.>=.==.===.!=!== 逻辑运算符 &&与(且).|或 ...

  8. java基本数据类型的标识符_java基础(一)-标识符、变量、基本数据类型及转换、运算符及表达式...

    一.标识符 二.关键字 三.JAVA基础数据类型 3.1.常量 3.2.变量 从本质上来讲,变量其实是内存里面的一小块区域,一个程序在运行的时候,实际上这个程序是位于内存里面,然后才开始运行.一个.e ...

  9. JavaScript基础--变量、运算符

    JavaScript组成 ECMAScript ECMAScript 是由ECMA 国际( 原欧洲计算机制造商协会)进行标准化的一门编程语言,这种语言在万维网上应用广泛,它往往被称为 JavaScri ...

  10. 【Java从入门到头秃专栏 】(二) 注释 数据类型 变量 常量 关键字 标识符 运算符 输入输出

    目录 1 注释 2 数据类型 3 变量与常量 4 关键字.标识符 5 运算符 6 键入值.输出值 1 注释 注释就是写在程序中对代码进行解释说明的文字,方便自己和其他人查看,以便大家更加容易理解程序. ...

最新文章

  1. 关于回答「对极几何与基本矩阵」的几点感悟
  2. Javascript 匀速运动停止条件——逐行分析代码,让你轻松了运动的原理
  3. python起步输入-第 4 节 小Python 起步
  4. @requirespermissions注解是什么意思_如何基于spring开发自定义注解实现对接口访问频次限制?...
  5. 【python数据挖掘课程】二十四.KMeans文本聚类分析互动百科语料
  6. 用华为HMS core的秘钥库文件不存在或者已经存在的解决方案
  7. java闰年的年份,Java案例-判断给定年份是闰年
  8. 苹果挖来ARM顶尖芯片工程师开发芯片 以减少对英特尔依赖
  9. 关于RecyclerView条目复用
  10. Int.Parse()、Convert.toInt32()和(int)区别
  11. CentOS6 修改MySQL编码
  12. android int 字节数组,android 将int转byte,byte转int的两种方法
  13. 微信公众号打开网页自动登陆配置
  14. 巴菲特-芒格-彼得林奇的经典观点梳理
  15. 在存储过程中调用外部对象进行简繁互换
  16. 前端性能优化——字体文件压缩
  17. CentOS离线 + 在线安装telnet(rpm包安装)
  18. Istio系列学习(十四)----Istio策略适配器配置和Env适配器配置
  19. StrConv 内码转换
  20. mysql子查询不支持limit问题解决

热门文章

  1. 【Android】No resource found that matches the given name 'Theme.Sherlock.Light.NoActionBar'
  2. javascript单元测试:jasminejs 2.0的烦恼
  3. nQueen问题java实现
  4. 我会回来的!我很想念大家!
  5. BOM操作及DOM表单案例练习
  6. python中list 和array的区别
  7. Html Picture
  8. 7-31 字符串循环左移 (20 分)
  9. tomcat启动Configuration Error: deployment source ‘xxx:war exploded‘ is not valid
  10. call() apply() bind()