5、前端--js常量、变量、5种基本数据类型(number string boolean undefined object)、运算符、流程控制、三元运算符、函数、自定义对象、内置对象、BOM操作

变量与常量

在JS中声明变量需要使用关键字
	老版本	var(全部都是全局变量)
	新版本 let(可以声明局部变量)
	# 推荐使用let(其实问题不大)
在JS中声明常量也需要使用关键字
	const  # 声明一个真正意义上的常量
 
如何创建变量
	var name = 'jason'
	let name = 'jason01'
如何创建常量
	const pi = 3.14
 
"""
可以编写js代码的地方
	1.pycharm提供的js文件
	2.直接使用浏览器提供的编程环境
"""
ps:pycharm在使用上述关键字的时候如果出现了报错说明js版本没有选择6
需要我们自定义设置 settings>>>l f>>>js

5种基本数据类型

python基本数据类型
	int、float、str、list、dict、bool、tuple、set
js基本数据类型
	number、string、boolean、undefined、object()
 
查看数据类型
	python中使用type()
	js中使用typeof

1、number类型

# 数值类型:包含了整型与浮点型
parseInt、parseFloat
	
NaN:Not A Number
"""NaN属于数值类型 表示的意思是 不是一个数字"""

2、string类型

# 定义字符类型的方式
	1.单引号
	2.双引号
	3.反引号
		var s1 = `
			jason老师
			tony老师
			kevin老师
			`
            
# 在js中字符串的拼接推荐使用+号
	
# 格式化输出(模板字符串的功能)
	var name1 = 'jason'
	var age = 18
	`my name is ${name1} my age is ${age} `

3、boolean类型

在python中布尔值类型首字母大写
	True False
在js中布尔值类型全部小写
	true false

4、null与undefined类型

null表示的意思是空
undefined表示的意识是未定义
	eg:null意思是厕纸用完了 undefined意思是厕纸都没装

5、对象之数组类型

# 对应到python中就是列表list

l2.splice(2,1)  # 第一个参数是起始位置 第二个参数是删除元素的个数

运算符

1.比较运算符
	==   弱等于  # 会自动转换数据类型至相同状态
	===  强等于  # 不会自动转换数据类型

2.逻辑运算符
	python中
		and or not
    js中
		&& || !

流程控制

'''if判断'''
python中	
	if 条件:
		条件成立之后执行的代码
	else:
		条件不成立执行的代码
js中
	if(条件){
		条件成立之后执行的代码
	}else{
		条件不成立执行的代码
	}
    
	if(条件1){
		条件1成立之后执行的代码
	}else if(条件2){
		条件2成立之后执行的代码
	}else{
		条件都不成立执行的代码
	}
'''switch'''
	var day = new Date().getDay();
	switch (day) {
		case 0:
			console.log("Sunday");
			break;
		case 1:
			console.log("Monday");
			break;
		default:
			console.log("...")
	}
"""for循环"""
	for(起始值;循环条件;每次循环后执行的操作){
		for循环体代码
	}
    
	for (var i=0;i<10;i++) {
		console.log(i);
	}
    
	# 练习:如何使用for循环取出数组内的每个元素
		var l1 = [111,222,333,444,555,666]
		for(let i=0;i<l1.length;i++){
			console.log(l1[i])
		}
"""while循环"""
	while(循环条件){
		循环体代码
	}

三元运算符

在python中
	res = '吃饭' if 18 > 10 else '喝水'
在js中
	res = 18 > 10 ? '吃饭':'喝水'

函数

在python中
	def 函数名(参数1,参数2,...):
		'''函数注释'''
		函数体代码
		return 返回值

在js中
	function 函数名(参数1,参数2,...){
		// 函数注释
		函数体代码
		return 返回值
	}
"""
arguments参数 可以获取传入的所有数据
	也支持return和匿名函数
"""
var f = v => v;
// 等同于
var f = function(v){
	return v;
}

自定义对象

# 相当于python中的字典类型
	方式1: var d = {'name':'jason','age':18}
	方式2: var d = Object({'name':'jason','age':18})


# 用Python代码实现点属性操作
class MyDict(dict):
	def __getattr__(self, item):
		return self.get(item)
	def __setattr__(self, key, value):
		self[key] = value

res = MyDict(name='jason',age=18)
print(res.name)
print(res.age)
res.xxx = 123
print(res.xxx)
print(res)    

内置对象

# 如果需要使用内置对象 需要关键字 new
在python中
	import date
	date()
在js中
	new date()
    
    
##########################################################
序列化
	python中
		import json
		json.dumps()  # 序列化
		json.loads()  # 反序列化
	js中
		JSON.stringify()  # 序列化
		JSON.parse()  # 反序列化
"""
如果当前js中有一个布尔值true需要基于网络发送给python程序并且让python转换成布尔值 如何操作
	1.在js中使用JSON.stringify()序列化成json格式字符串
	2.基于网络发送给python程序(自动编码)
	3.python接收 解码并反序列化
"""
##########################################################

regexp对象
	方式1:var reg1 = new RegExp("^[a-zA-Z][a-zA-Z0-9]{5,11}");
	方式2:var reg2 = /^[a-zA-Z][a-zA-Z0-9]{5,9}/;
全局匹配
	正则表达式的最后不加g则表示匹配成功就结束 加g表示全局匹配
	# 全局匹配会有一个lastindex属性
	reg2
	/^[a-zA-Z][a-zA-Z0-9]{5,9}$/g
	reg2.test('jason666')
	true
	reg2.test('jason666')
	false
	reg2.lastIndex  //当前匹配位置的索引为0
	0
	reg2.test('jason666')
	true
	reg2.lastIndex  // 当前匹配位置的索引为8,即从末尾开始匹配
	8
	reg2.test('jason666')  // 当然是false
	false  
校验时不传参数默认传的是undefined

BOM与DOM操作

BOM		浏览器对象模型>>>:使用js操作浏览器
DOM		文档对象模型>>>:使用js操作前端页面

BOM操作

window.open() 				// 打开新窗口
window.close() 				// 关闭当前窗口
window.history.forward()  	 // 前进一页
window.history.back()  		 // 后退一页
window.location.href  		 // 获取URL
window.location.href="URL" 	 // 跳转到指定页面
window.location.reload() 	 // 重新加载页面


setTimeout()	// 定时事件
clearTimeout()	// 清除定时事件
setInterval()	// 周期事件
clearInterval()	// 清除周期事件
posted @ 2022-02-14 15:06  简爱cx  阅读(53)  评论(0编辑  收藏  举报