运算符
var x = 10;
var res1 = x++; '先赋值后自增1' res1 = 10 x = 11
var res2 = ++x; '先自增1后赋值' x = 12 res2 = 12
弱等于:自动转换类型
'5' == 5 '结果true js会自动转换成相同数据类型比较值是否一样
强等于:不转换类型
'5' === 5 '结果是false'
# 3.逻辑运算符
python中使用 and、or、not
js中 &&、||、!
流程控制
1.单if分支
if(条件){
条件成立执行的子代码
}
2.if else 分支
if(条件){
条件成立执行的子代码
}
else{
条件不成立执行的子代码
}
3.if...else if...else分支
if(条件1){
条件1成立执行的子代码
}
else if(条件2){
条件1不成立条件2成立执行的分支代码块
}
else{
条件1和2都不成立执行的分支代码块
}
4.switch语法
var n1 = 1;
switch (n1) {
case 0:
console.log("干饭");
break;
case 1:
console.log("睡觉");
break;
case 2:
console.log("玩耍")
default:
console.log("无所事事!!!")
}
while(循环条件){
循环体代码
}
for(初始值;循环条件;每次循环之后的操作){
循环体代码
}
循环打印0到9的数字
for(var i=0;i<10;i++){
console.log(i);
}
三元运算符
python中的三元运算
res = 11 if 1>2 else 22
'''if后面的条件成立则使用if后面的值 否则使用else后面的值'''
js中的三元运算
res = 1>3 ? 11:22
'''问号前面的条件成立则使用冒号左边的值 否则则使用冒号右边的值'''
函数
'''
函数定义:
function 函数名(参数1,参数2){
函数体代码
return 返回值
}
1.function 定义函数的关键字 相当于python中的def
2.函数名的命名参考变量名 并且js命名使用驼峰体
3.参数可写可不写
4.return返回值
函数调用:
函数名加括号,有参数则传参即可
'''
function f1(){
console.log(111)
}
f1()
function f2(a,b){
console.log(a,b)
}
f2()
f2(1)
f2(1,2)
f2(1,2,3,4)
'''js中的函数提供了内置关键字arguments:接收所有参数'''
function f2(){
console.log(arguments)
if (arguments.length === 0)
console.log('没有传参数')
if (arguments.length ===2)
console.log('传了两个参数')
}
return不支持返回多个数据
var ff = function(){
console.log(1234)
}
var f = v => v;
var f = function(v){
return v;
}
var f = () => 5;
var f = function(){
return 5;
}
var sum = (sum1,sum2) => sum1+sum2;
function sum(sum1,sum2){
return sum1 + sum2;
}
自定义对象
var d1 = {'name':'jason','age':18}
python字典取值操作js中的自定义对象都有 并且自定义对象还可以直接通过据点符取值 更像一个对象
取值操作
d1.name
循环取值
for(var i in d1){
console.log(d1[i])
}
定义自定义对象还有一种标准格式(自定义对象 内置对象 第三方对象)
var d2 = new Object()
内置对象
var d1 = new Date()
d1.toLocaleString() '2022/4/28/ 17:32:05'
d1.toLocaleDateString() '2022/4/28/'
d1.toLocaleTimeString() '17:32:05'
getDate() 获取日
getDay() 获取星期
getMonth() 获取月
getFullYear() 获取完整年
getYear() 获取年
getHours() 获取小时
getMinutes() 获取分钟
getSeconds() 获取秒
getMilliseconds() 获取毫秒
getTime() 返回累计毫秒数(从1970/1/1午夜)
const WEEKMAP = {
0:'星期天'
1:'星期一'
2:'星期二'
3:"星期三",
4:"星期四",
5:"星期五",
6:"星期六"
}
function showTime(){
var d1 = newDate();
var year = d1.getFullYear();
var month = d1.getMonth() + 1
var day = d1.getDate();
var hour = d1.getHours();
var minute = d1.getMinutes() <10 ? '0'+d1.getMinutes:d1.getMinutes;
var week = WEEKMAP[d1.getDay()];
var strTime = `${year}-${month}-${day} ${hour}:${minute} ${week}`;
console.log(strTime)
}
showTime();
JSON对象
import json
json.dumps()
json.loads()
JSON.stringify()
JSON.parse()
正则对象
var reg1 = new RegExp("^[a-zA-Z][a-zA-Z0-9]{5,11}");
var reg2 = /^[a-zA-Z][a-zA-Z0-9]{5,11}$/
reg2.test('jason123') true
'''括号内什么都不写 就相当于写了undefined'''
reg2.test() true
'''
验证
var reg3 = /undefined/
reg3.test('jason666') false
reg3.test('undefined') true
reg3.test() true
'''
在正则表达式的最后添加一个字母g
var reg2 = /^[a-zA-Z][a-zA-Z0-9]{5,9}$/g;
reg3.lastIndex
0
reg3.test('jason666')
true
reg3.lastIndex
8
reg3.test('jason666')
false
BOOM操作
Browser Object Model是指浏览器对象模型,它使js有能力于浏览器进行对话
window.open('https://www.baidu.com','','width=400,height=400')
子页面的操作其实可以通过一些手段传递给父页面
windows.close()
windows.navigator.appVersion
window.navigator.userAgent
window.history.forward()
window.history.back()
window.location.href
window.location.reload()
window.location.href = url
'''window可以省略不写'''
alert("你看到了吗?") 警告
confirm('要不要敲老赵的天灵盖') 确认
获取用户是点击取消还是确认 返回false和true
prompt('你还有什么要交代的吗') 提示
获取用户输入的内容 也可以通过第二个参数添加默认内容
'''单次定时'''
var t = setTimeout(showMsg,9000)
clearTimeout(t)
'''循环定时'''
var s = setInterval(showMsg,3000)
clearInterval(s)
补充说明
由于DOM是操作页面上的HTML代码 但是HTML页面加载顺序是从上到下
所有如果想要代码正常执行 必须先等待html页面加载完毕
解决措施一:
将script标签写在body最下方
DOM操作
Document Object Model是指文档对象模型,通过它可以操作HTML文档的所有元素
但是HTML页面上有很多相同的标签 所以我们在操作HTML标签之前还要先学会如何查找标签(js查找标签)
'''直接查找'''
document.getElementsByTagName('div')
document.getElementsByClassName('c1')
document.getElementById('d1')
'''间接查找'''
parentElement 父节点标签元素
children 所有子标签
firstElementChild 第一个子标签元素
lastElementChild 最后一个子标签元素
nextElementSibling 下一个兄弟标签元素
previousElementSibling 上一个兄弟标签元素
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人