JavaScript

1.JS概述

 (1)历史

  1995年,JS最早出现在Netscape的浏览器中

  1996年,IE中也可以出现了JS

  1997年,指定了JS的标准规范 ECMAScript

  2009年,JS开始向后端发展,开始出现Node.js

 (2)现状

  JS既可以运行在客户端浏览器,也可以运行在服务器端

 (3)特点

  JS是解释型语言,编译一行执行一行

  弱类型语言

  基于对象

  跨平台

 (4)应用场景

  开发浏览器端的交互效果,服务端的开发,例如访问数据库,调用其它的服务器...

2.搭建开发环境

 (1)浏览器端

   谷歌/火狐/Safari/Edge/欧朋

 (2)服务器端

   Node.js

   下载地址:www.nodejs.org

   node  -v  查看当前版本号

 (3)运行JS

  浏览器

    创建01.js和01.html,把js文件嵌入到html中

    <script  src='01.js'></script>

    最后用浏览器打开html即可运行js

  Nodejs

    node  拖拽js文件    回车

3.JS语法规范

 区分大小写

 每行代码结束的分号可以省略

 分为单行注释(//...)和多行注释(/*..*/)

4.变量

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

 var x=1;

 var a=2, b=3;

 使用var关键字声明变量,在内存中开辟空间,然后再存储数据。

 (1)命名规则

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

  语义

  phone  email

  user_name 

  userName   yongHuMing

 (2)变量的赋值

  变量声明后未赋值,则值为undefined(未定义)

  变量可以多次赋值,并且赋不同类型的值,这也是弱类型语言的特点。

  练习:声明变量保存一组商品的价格和数量,然后修改价格和数量,最后计算出总价

5.常量

 常量也是存储数据的容器

 const pi=3.14;

 使用const关键字声明常量

 特点:声明后必须赋值,不允许重新赋值。

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

  浮点型

  31415e-2

  314.15

  3.1415e+2

 (2)字符串型

  被引号包含的值,不区分单双引号

  查看任意一个字符的Unicode码

   'a'.charCodeAt()

检测数据类型

typeof

'number'/'string'/'boolean'/'undefined'/'object'

 (3)布尔型

  只有两个值,分别是true和false,代表真和假

  常用于保存只有两个状态的值,例如:是否登录、是否为会员..

 (4)未定义型

  只有一个值undefined,表示一个空值,例如:声明变量未赋值为undefined

 (5)空

  只有一个值null,表示一个空值

  常和引用类型的数据一起使用

2.数据类型转换

 分为隐式转换和强制转换

 (1)隐式转换

  在运算过程中自动产生的转换

  ①数值+字符串    数值转为字符串

    3+'1'  //'31'

  ②数值+布尔型   true->1  false->0

    3+true  //4

    3+false  //3

  ③字符串+布尔型   布尔型转为字符串

    '3'+true  //'3true'

加号(+)的作用

①执行数值间的加法运算

②执行字符串间的拼接

  练习:查看以下程序的运行结果

   var a=1, b=true, c='tedu';

   console.log(a+b+c); //'2tedu'

   console.log(b+c+a); //'truetedu1'

   console.log(c+a+b); //'tedu1true'

NaN:Not a Number,不是一个数字,它是将值转数值过程中没有成功的得到数值返回的结果,NaN和任何的数字执行运算结果还是NaN

  所有隐式转换为数值会自动调用函数Number

 (2)强制转换

  ①强制转换为数值

   Number()

Number('2') //2

Number('2a') //NaN

Number(true) //1

Number(false) //0

Number(undefined) //NaN

Number(null) //0

  ②强制转为整型

   parseInt()

   通常用于将字符串和小数转为整型,其它类型转换结果是NaN

parseInt(-4.8) //-4

parseInt('4.8') //4

parseInt('4.8a') //4

parseInt('a4.8') //NaN

  ③强制转为浮点型

   parseFloat()

   用于将字符串转为浮点型

parseFloat('3a') //3

parseFloat('3.14a') //3.14

parseFloat('a3.14') //NaN

  ④转字符串型(了解)

   只能将数值和布尔型转为字符串

   toString()

var  n=2;

n.toString()  //'2'

3.运算符

 表达式:由数据本身或者运算符连接的操作数据组成的格式

 运算符分为算术运算符、比较运算符、逻辑运算符、位运算符、赋值运算符、三目运算符

 (1)算术运算符

  +  -  *  /   %   ++   --

  %  取余数

  ++  自增,在原来基础之上加1

  --  自减,在原来基础之上减1

var b1=3;

//先把b1的值赋给b2,然后b1再执行自增

var b2=b1++;

var b3=3;

//先让b3执行自增,把自增的结果赋给b4

var b4=++b3;

  练习:查看以下程序的运行结果

   var n1=8;

   var n2=--n1;

   var n3=n1--;

   console.log(n1,n2,n3);

 (2)比较运算符

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

  ==  等于,只是比较两个值是否相同

  ===  全等于,比较的是值和类型,要求两者都相同

  !=  不等于,只是比较值是否不等

  !==  不全等于,值不等或者类型不等

  数字和字符串比较,字符串转换为数字

   3>'10'  //false  

  字符串直接比较,比较的是首个字符的编码

   '3'>'10'  //true

    '3'->51   '1'->49

  

  3>'10a' //false

  3<'10a' //false

  3=='10a' //false

  NaN==NaN  //false

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

 (3)逻辑运算符

  &&  逻辑与(并且),关联的两个条件都是true,结果是true,否则是false

  ||  逻辑或(或者),关联的两个条件有一个是true,结果是true,否则是false

  !  逻辑非,取反

  短路逻辑

    逻辑与:当第一个条件为false,就不再执行第二个条件

    逻辑或:当第一个条件为true,就不再执行第二个条件

短路逻辑无需查看整体是true还是false,就看第二个条件是否执行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值