Web前端105天-day16-JS

 day16-js第一天

目录

前言

一、JS概述

1.1.JS历史

1.2.JS的学习步骤

二、JS入门

2.1JS的运行方式

2.2JS的语法规范

三、变量

3.1变量的概念

3.2变量的赋值

3.3变量的命名规则

四、常量

五、数据类型

5.1数值型

5.2字符串型

5.3布尔型

5.4未定义型

5.5空

六、数据类型转换

6.1隐式转换

6.2强制转换

总结


前言

js第一天学习开始


一、JS概述

1.1.JS历史

  • 1995年,出现在网景浏览器中
  • 1997年,制定了JS的标准规范ECMAScript
  • 2009年,JS开始向后端发展,出现了Node.js

1.2.JS的学习步骤

  • 了解背景知识(什么时候出现的 发展历史 背景 现状)
  • 搭建开发环境
  • 打印输出hello world
  • 变量和常量
  • 数据类型(数字、字符串…)
  • 运算符(加减乘除、复杂运算符…)
  • 逻辑结构(判断、循环…)
  • 函数和对象
  • 第三方的库和框架(vue react 小程序等等)
  • 完成自己的个人项目

二、JS入门

2.1JS的运行方式

  • 内部写法
<script>JS代码<script>
  • 外部写法
    • 1.先创建01.js外部文件
    • 2.<script src=”01.js”>这里不能再写其它代码</script>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>js的两种书写方式</title>
	</head>
	<body>
		<!-- js的写法一:内部写法 -->
		<!-- 现在script标签推荐写在body的最后,这样不影响网页的加载 -->
		<!-- 方便上面的html+css都加载完毕了再执行JS代码 -->
		<script>
			// 打印输入hello world,注意要加引号,推荐使用单引号
			console.log('hello world')
			//结果要在F12的控制台查看,HTML页面中是看不到的
		</script>
		
		<!-- JS的写法二:引入外部的JS文件 -->
		<script src="01.js">
			// 如果此script标签已经用于引入外部的js文件,里面的代码是不执行的
			console.log('你好中国') //此句代码没有执行
		</script>
	</body>
</html>

 

2.2JS的语法规范

  1. 注释
    • 注释:用于解释代码的内容,被注释掉的内容不会执行,可以提高代码的可读性与可维护性
    • 单行注释,格式 // 快捷键Ctrl+/
    • 多行注释,格式 /* */ 快捷键 Ctrl+Shift+/
  2. 语法规范
    • 代码严格区分大小写

    • 每行代码结束的分号可以省略不写
    • JS代码要比html和CSS都严格,一旦出错,代码就无法正常执行了

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>JS的注释</title>
	</head>
	<body>
		<script>
			// 被注释掉的内容就不会执行了
			//单行注释 Ctrl+/
			//console.log('我是一个单行注释')
			
			//多行注释 Ctrl+Shift+/
			/* console.log("我是一个多行注释")
			console.log("我是一个多行注释")
			console.log("我是一个多行注释") */
			
			//JS严格区分大小写
			//大小写错误 中英文符号错误等都会报错
			console.log('欢迎来到程序猿的世界')
			//Console.log('欢迎来到程序猿的世界') //报错
		</script>
	</body>
</html>

 

三、变量

3.1变量的概念

  • 用于存储数据的容器
  • var(variable可变化的)用于声明变量,格式:
    • 声明单个变量: var 变量名 = 值
    • 声明多个变量: var 变量名1=值1,变量名2=值2
  • 使用关键字var来声明变量,x表示变量名称,会在内存中开辟空间,然后把后面的值1存进去

3.2变量的赋值

  • 变量可以声明时同时赋值,也可以先声明再赋值,变量需要声明后才可以使用

  • 变量声明了,但没有赋值,打印出来的是undefined(未定义)空值

  • 变量允许多次赋值,后面的值会把前面的值覆盖掉,重新赋值不需要再写var
  • 变量的多次赋值可以赋不同类型的值(这是弱类型语言的特点)

3.3变量的命名规则

  • 变量名称可以由字母、数字、下划线(_)、美元符号($)构成
  • 变量名称不可以使用数字开头
  • 变量名称不可以使用关键字,如:var if 等
  • 变量名称不推荐使用汉字
  • 变量名称要做到语义化(见名知意),如:email
  • 多个单词的命名方式:
    • user_name 下划线命名法
    • userName 小驼峰命名法

    • UserName 大驼峰命名法
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>JS变量测试</title>
	</head>
	<body>
		<script>
			//1.变量的声明
			//变量的名称为x,然后将值1交给变量x保存
			var x = 1
			//变量的名称为color,然后将值交给变量color保存
			var color = 'red'
			//打印查看两个变量的值
			console.log(x,color)
			
			//2.练习,声明多个变量,分别保存一个用户的:
			//用户名uname,邮箱email,手机phone,性别gender,最后打印输出这组变量
			var uname = 'xin88'
			var email = 'xin@tedu.cn'
			var phone = 18811118888
			var gender = '未知'
			console.log(uname,email,phone,gender)
			
			//3.使用一个var声明多个变量
			var a = 11,b = 22
			console.log(a,b)
			
			//4.变量的赋值
			//变量需要声明才可以使用
			//ReferenceError(引用错误):c is not defined(定义)
			//声明了但没有赋值,打印出来的是undefined(未定义)空值
			//console.log(c)
			var c2
			console.log(c2)//undefined
		
			var user
			//可以先声明,再赋值,重新赋值的时候不需要写var
			user = 'liang'
			console.log(user)
			user = 666 //会覆盖前面的值'liang'变为666
			//这个覆盖数据的类型都变了,由字符串变为数字,所以称JS为弱类型语言
			//没有贬义,指的是它的赋值特点
			console.log(user)
			
			//5.变量的命名规则 字母 数字 下划线_ 美元符号$
			var a1 = 2
			//var 1a = 3 变量名称不可以使用数字开头
			var _b2 = 4
			var $c3 = 5
			//var var = 5 变量名称不可以使用关键字
			var 城市 = '大连' //中文虽然不报错,但是不推荐使用!
			console.log(城市)
			
			//6.练习:声明多组变量保存商品的单价price/数量num/总价total,最后打印输出总价
			var price1=30,num1=2
			var price2=50,num2=3
			var total = price1*num1+price2*num2
			console.log(total)
			
			//7.练习:交换两个变量的值x=1,y=2 交换后x=2,y=1
			var x=108,y=27
			console.log(x,y)
			var z //准备第3个变量协助交换
			z = x //将x的值给z
			x = y //将y的值给x
			y = z //将z的值给y
			console.log(x,y)
		</script>
	</body>
</html>

 

四、常量

  • 和变量一样,都是用于存储数据的容器
  • 常量的值不允许被修改
  • 常量声明的时候必须被赋值,不允许为空
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>常量练习const</title>
	</head>
	<body>
		<script>
			//1.声明常量
			const a = 2
			console.log(a)
			// 2.常量的值不允许被修改
			//a = 3 //TypeError: Assignment to constant variable.
			//3.常量声明时必须同时赋值
			//const b //Missing initializer in const declaration
			
			//4.练习:声明变量保存圆的半径r,声明常量保存圆周率pi 3.14
			//声明变量保存计算的面积area,声明变量保存计算的周长length
			//最后打印输出面积和周长
			var r = 5
			const pi = 3.14
			//计算面积
			var area = pi*r*r
			//计算周长
			var length = 2*pi*r*100/100
			console.log(area,length)
		</script>
	</body>
</html>

 

五、数据类型

  • 数据类型分为原始类型和引用类型
  • 原始类型分为:数值型、字符串型、布尔型、未定义型、空

5.1数值型

  • 整数类型
    • 整数类型就是我们所说的整数 0 1 2…

    • 数值有多种进制的表示方式

  • 浮点型
    • ​​​​​​​浮点型就是我们所说的小数 3.14
    • 浮点型可以使用科学计数法的表示方式

5.2字符串型

  • 被引号所包裹的值,引号不区分单双引号
  • 检测数据类型 
    • typeof 值
    • number数值型/string字符串型/boolean布尔型/undefined未定义型/null空

  • 查看任意一个字符的编码 :'a'.charCodeAt().

5.3布尔型

  • 只有两个值,分别是true和false表示真和假,用于保存只有两种状态的数据

  • 如:是否登录、是否是会员、是否购买过…

5.4未定义型

  • 只有一个值undefined,表示空值,如:变量声明但未赋值就是undefined

5.5空

  • 只有一个值,null,常和引用类型的数据一起使用

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>数据类型测试</title>
	</head>
	<body>
		<script>
			//1.数值型number
			//1.1 整型
			var n1 = 10
			var n2 = 0b1010 //二进制 以0b开头的数字
			var n3 = 012 //八进制 以0开头的数字
			var n4 = 0xA //十六进制 以0X开头的数字
			console.log(n1,n2,n3,n4) //以上数值均转为10进制输出
			console.log(typeof n1)
			
			//1.2 浮点型
			var f1 = 3140
			var f2 = 3.14E3 //3.14*10^3
			var f3 = 31.4e+2 //31.4*10^2
			var f4 = 31400e-1 //31400*10^-1
			console.log(f1,f2,f3,f4)//都是3140
			console.log(f1)
			
			//2.字符串型string
			var str1 = '新哥'
			var str2 = '3'
			var str3 = 'str1'
			console.log(str1)
			//typeof 检测数据的类型
			console.log(str2,typeof str2)//3 string
			console.log(str3)
			//查看任意一个字符的编码
			console.log('a'.charCodeAt())//小写字母a对应编码数字97
			console.log('我'.charCodeAt())
			console.log('喜'.charCodeAt())
			console.log('欢'.charCodeAt())
			console.log('你'.charCodeAt())
			
			//3.布尔型boolean
			var b1 = true
			var b2 = 0>1
			console.log(b1,b2,typeof b2)
			
			//4.未定义型undefined 
			var c 
			console.log(c,typeof c)
			
			//5.空 object
			var p = null
			console.log(p,typeof p)
		</script>
	</body>
</html>

 

六、数据类型转换

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

6.1隐式转换

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

  • 数字+字符串 数字转为字符串

    • 如:2 + ‘3’ //23

  • 数字+布尔型 布尔型转数字 true->1 false->0

    • 如:2+true //3

  • 字符串+布尔型 布尔型转字符串

    • 如:‘2’+ true //2true

  • JS中加号(+)的作用

    • 数字之间执行加法运算

    • 字符串之间执行拼接运算

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>数据类型转换-隐式转换</title>
	</head>
	<script>
		var n1 = 2 + '3'//先把数字2转为字符串2,再执行字符串的拼接
		console.log(n1,typeof n1)//23 string
		var n2 = 2 + true //布尔型转数字1
		console.log(n2,typeof n2)//3 'number'
		var n3 = 2 + false//布尔型转数字0
		console.log(n3,typeof n3)//2 'number'
		var n4 = '2' + true//布尔型转字符型
		console.log(n4,typeof n4)//2true string
		
		//字符串的拼接
		//商品名称:iPhone 14,系统:iOS
		var pro = 'iPhone 14'
		var os = 'iOS'
	  console.log('商品名称:'+pro+',系统:'+os)
		
		//假设一个员工的信息,姓名:李逵 年龄:18 住址:柳树下 
		//打印输出:有一个员工叫XX,他的年龄是XX,每天住在XXX
		var name = '李逵'
		var age = 18
		var addr = '柳树下'
		console.log('有一个员工叫'+name+',他的年龄是'+age+',每天住在'+addr)
		
		var m1 = '3' - '2' //1
		var m2 = '3' * false //0
		var m3 = true / '2' //0.5
		var m4 = '3a' - 2 //NaN
		var m5 = 3 + undefined //NaN
		var m6 = 1 - null //1
		console.log(m1,m2,m3,m4,m5,m6)
		//以上的操作都会默认调用Number()进行转换
		
		//NaN和任何数字执行数学运算的结果还是NaN
		console.log(NaN-2,NaN+2,NaN*2,NaN/2)
	</script>
	</body>
</html>

 

6.2强制转换

  • 强制转换成数字Number()
    • NaN(Not a Number)不是一个数字,是在将一个值转换为数字的过程中,没有成功的得到数字结果,就是NaN, NaN和任何数字执行数学运算的结果还是NaN
var n1 = Number('3') //3
var n2 = Number(true) //1
var n3 = Number(false) //0
var n4 = Number('3a') //NaN
var n5 = Number(undefined) //NaN
var n6 = Number(null) //0
  • 强制转换成整型 parseInt()
    • 用于将小数或者是字符串转为整型,其他类型转换结果为NaN

var p1 = parseInt(3.5)//3
var p2 = parseInt('6a')//6
var p3 = parseInt('a6')//NaN
  • 强制转换成浮点型 parseFloat()
    • ​​​​​​​用于将字符串转为浮点型,其他类型转换结果为NaN
var f1 = parseFloat('3.14a')//3.14
var f2 = parseFloat('75')//75			
var f3 = parseFloat('a3.14')//NaN
  • 强制转换为字符串【了解】 toString()
    • ​​​​​​​用于将数字和布尔类型转为字符串
var n = 2
var str = n.toString()
  • 拓展:进制

    • ​​​​​​​10进制(DEC decimal) 由0~9组成

    • 2进制(BIN binary) 由0和1组成,以0b开头

    • 8进制(OCT octal) 由0~7组成,以0开头

    • 16进制(HEX hexadecimal) 由0~9 a~f组成,以0x开头

    • Win+R->calc->程序员计算器可以计算出不同进制的数值转换

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>数据类型转换-强制转换</title>
	</head>
	<body>
		<script>
			//Number()函数
			var n1 = Number('3') //3
			var n2 = Number(true) //1
			var n3 = Number(false) //0
			var n4 = Number('3a') //NaN
			var n5 = Number(undefined) //NaN
			var n6 = Number(null) //0
			console.log(n1,n2,n3,n4,n5,n6)
			
			//转整型
			var p1 = parseInt(3.5)//3
			var p2 = parseInt('6a')//6
			var p3 = parseInt('a6')//NaN
			var p4 = parseInt(null)//NaN
			console.log(p1,p2,p3,p4)
			
			//转浮点型(小数)
			var f1 = parseFloat('3.14a')//3.14
			var f2 = parseFloat('75')//75
			var f3 = parseFloat('a3.14')//NaN
			console.log(f1,f2,f3)
			
			//转字符串
			var n = 2
			var str = n.toString()
			console.log(str,typeof str)
		</script>
	</body>
</html>

 


总结

JS第一天学习结束 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值