当前位置: 首页 > news >正文

day3_javascript1

day3_javascript1

1js引入方式

      三种引入方式1 使用script标签 写js代码2 使用script标签 带src属性 引入js文件  此标签体失效3 在元素上直接写js代码     javascript:console.log(333)  建议少用
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>console.log("hello javascript!!!!")</script><script src="./js/myjs.js"></script></head>
<body><!-- script  脚本style   样式三种引入方式1 使用script标签 写js代码2 使用script标签 带src属性 引入js文件  此标签体失效3 在元素上直接写js代码     javascript:console.log(333)  建议少用--><button onclick="javascript:console.log(333)">测试按钮</button></body>
</html>

2js变量声明

//js 弱类型变量

// 声明时不需要指定类型 赋值时根据值的类型决定变量类型

// 声明变量时 有统一的关键字

//es6之前 变量 var

//es6之后 变量 let 常量const

// 变量名

// 多单词+驼峰

// 避免与关键字 保留字冲突

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body></body><script>//js 弱类型变量 //   声明时不需要指定类型  赋值时根据值的类型决定变量类型//   声明变量时 有统一的关键字//es6之前     变量 var//es6之后     变量 let  常量const//   变量名//   多单词+驼峰//   避免与关键字 保留字冲突 //   undefined类型 let gameTime;</script></html>

3js数据类型

    js常见数据类型1.number  数字类型    整型 浮点型10 10.1 js中number容易丢失精度 不要做精密数学计算2.boolean 布尔类型    true/falsetrue false  对 和  错3.string  字符串类型  js不分字符 字符串""  ''  ``   都是字符串``模板字符串 方便拼接变量 `a${myNum}a`4.undefined 未定义或未赋值 未定义未赋值  两种情况5.Object  其他都是对象类型

注意:

typeof 检测变量数据类型

js中 变量可以通过赋值变换类型

不要随便变换类型 容易给自己挖坑

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body></body><script>/*js常见数据类型1.number  数字类型    整型 浮点型10 10.1 js中number容易丢失精度 不要做精密数学计算2.boolean 布尔类型    true/falsetrue false  对 和  错3.string  字符串类型  js不分字符 字符串""  ''  ``   都是字符串``模板字符串 方便拼接变量 `a${myNum}a`4.undefined 未定义或未赋值 未定义未赋值  两种情况5.Object  其他都是对象类型typeof 检测变量数据类型注意 js中 变量可以通过赋值变换类型 不要随便变换类型 容易给自己挖坑*/ let myNum = 10;console.log(myNum);console.log(typeof myNum);// myNum = true;// console.log(myNum);// console.log(typeof myNum);let newString = `'"a${myNum}a${myNum}"'`;console.log(newString);console.log(typeof newString);let newVal;console.log(newVal);console.log(typeof newVal);//console.log(newVal2);console.log(typeof newVal2);let myDate = new Date()console.log(myDate);console.log(typeof myDate);let myArr = []console.log(myArr);console.log(typeof myArr);</script></html>

注意:

1函数是特殊类型 特指函数

2函数名是一种特殊变量 函数名不要跟其他变量重复 会产生覆盖 导致失效

4运算符

    算数运算符+    数字相加  或者字符串拼接注意 浮点数容易丢失精度 可以保留指定位数 (muNum1+muNum2).toFixed(1)-    带内置类型转换2-'1' = 1搭配使用parseInt 强制转为数字* /  数学运算%    取余数带小数点 会丢失精度++ --i++ 先取值再运算++i 先运算再取值赋值运算符= 赋值运算   赋值有返回值比较运算符== ===的区别要说明自动类型转换规则==   比较值     包含自动类型转换===  比较值和类型逻辑运算符&&  有一个false 结果false||  有一个true  结果true !   取反        !0 表示true
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body></body>
<script>/*算数运算符+    数字相加  或者字符串拼接注意 浮点数容易丢失精度 可以保留指定位数 (muNum1+muNum2).toFixed(1)-    带内置类型转换2-'1' = 1搭配使用parseInt 强制转为数字* /  数学运算%    取余数带小数点 会丢失精度++ --i++ 先取值再运算++i 先运算再取值赋值运算符= 赋值运算   赋值有返回值比较运算符== ===的区别要说明自动类型转换规则==   比较值     包含自动类型转换===  比较值和类型逻辑运算符&&  有一个false 结果false||  有一个true  结果true !   取反        !0 表示true*/ // let muNum1 = 0.1;// let muNum2 = 0.2;// console.log((muNum1+muNum2).toFixed(1));//自动类型转换  有的运算带 有的运算不带//             搭配使用parseInt 强制转为数字// let muNum1 = 2;// let muNum2 = parseInt(1);// console.log(muNum1+muNum2);let muNum1 = 3.91;let muNum2 = 2;console.log(muNum1%muNum2);console.log((muNum1%muNum2).toFixed(2));console.log(parseInt(muNum1%muNum2) );let i = 1;console.log(++i);i=3;console.log(i=3);//自动类型转换 //可以转成数字的字符串 与数字之间let myStr = '1';let myNum = 1;console.log(myStr===myNum);//bol与数字0/1  false/truelet testBol = true;let testNum = 1;console.log(testBol == testNum);//代码压缩console.log(!0);</script></html>

数字 1549

把每个位数的数字都抽出来 1 5 4 9 在分别相加 得到19

取余数的方式 得到每个数字

   let tempNum = 1549let temp1 = tempNum%10let temp2 = parseInt(tempNum/10%10) let temp3 = parseInt(tempNum/100%10) let temp4 = parseInt(tempNum/1000) console.log(temp1);console.log(temp2);console.log(temp3);console.log(temp4);console.log(temp1+temp2+temp3+temp4);

5条件语句

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body></body>
<script>let myScore = 99;//通用性强  可以精确匹配 可以范围匹配if(myScore<60){console.log("奖励与女装小gege共进晚餐");}else if(myScore<80){console.log("奖励与壮汉小gege共进晚餐");}else{console.log("奖励与壮汉胡子小gege共进晚餐 再发给肥皂");}//switch 用在精确匹配let myGrade = 'SSR';switch(myGrade){case 'A':console.log("5090显卡");break;case 'B':console.log("5070显卡");break;case 'C':console.log("5060显卡");break;default:console.log("750ti显卡")}</script>
</html>

6循环语句

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body></body><script>
//for结构
//var 缺少块作用域
//for 用在已知次数的循环for(let i = 0; i < 10 ; i++){console.log(i);}// console.log(i);let myArr = [3,2,1];for(let i = 0; i < myArr.length ; i++){console.log(myArr[i]);}//for(let x in myArr) x 是索引console.log("---------------------");for(let x in myArr){console.log(myArr[x]);}//for(let x of myArr) x 是数据for(let x of myArr){console.log(x);}//while结构
//while 未知次数的循环//先判断条件 再执行{}// while(flag){//     console.log('xxx');//     if(xxxx){//         结束循环//     }// }//先执行一次 在判断条件// do{//     //dosomething// }while(flag)</script></html>

输出乘法口诀表

image-20250728115344736

    //输出乘法口诀表// 1x1=1// 2x1=2 2x2=4// for(let x = 1;x<=9;x++){//     for(let y = 1; y<=x;y++){//         document.write(`${y}x${x}=${x*y}`)//         document.write(`&nbsp;`)//         if(x*y<10){//             document.write(`&ensp;`)//         }//     }//     document.write(`<br>`)// }document.write(`<table border='1'>`)for(let x = 1;x<=9;x++){document.write(`<tr>`)for(let y = 1; y<=x;y++){document.write(`<td>`)document.write(`${y}x${x}=${x*y}`)document.write(`</td>`)}document.write(`</tr>`)}document.write(`</table>`)

7函数

7.1系统函数:

系统函数

​ 系统中预设好的函数 有指定的返回规则

​ 需要使用是 可以在任何地方调用 得到返回的结果

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body></body>
<script>/*控制台  黑色   类型字符串蓝色    数字  number  字母  特殊值 bol值灰色    undefined系统函数系统中预设好的函数 有指定的返回规则需要使用是 可以在任何地方调用 得到返回的结果*///parseInt() //NaN not a number   不是数字//把可以转成数字的内容 转成数字//数字取整//parseFloat()//把可以转成数字的内容 转成数字 带小数点let myNum = 10.9;console.log(myNum);console.log(parseInt(myNum));console.log(parseFloat(myNum));//检测是否不是数字//纯数字 才不是NAN 带其他是NANconsole.log(isNaN("10a"));//把可运算的字符串 转成运行结果console.log(eval("1+2*3") );</script>
</html>

注意控制台颜色: 用来快速识别数据类型

控制台  黑色   类型字符串蓝色    数字  number  字母  特殊值 bol值灰色    undefined

7.2自定义函数:

 类似java中的自定义方法封装代码给自己使用 通过()调用两套语法规则//声明式函数function 函数名(参数列表,参数,参数){//执行的js代码return xxx;}//匿名函数给变量赋值let newFun = function (num1,num2){return num1+num2;}
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body></body>
<script>/*类似java中的自定义方法封装代码给自己使用 通过()调用两套语法规则//声明式函数function 函数名(参数列表,参数,参数){//执行的js代码return xxx;}//匿名函数给变量赋值let newFun = function (num1,num2){return num1+num2;}*///注意  函数名是一种特殊变量 注意不要与其他变量重复// function 函数名(参数列表,参数,参数){//     //执行的js代码//     return xxx;// }function myTest(){console.log("test......");}myTest()//js中没有重载 只有覆盖 function getResult(num1){//debuggerlet myRes = num1;console.log(myRes);}//形参和实参可以不对应//尽量对应使用//参数类型没有限定 根据执行的逻辑 不同的参数可能有不同的结果function getResult(num1,num2){console.log(1111)//debuggerlet myRes = num1+num2;//console.log(myRes);return myRes;console.log(2222);}let newNum = getResult(1,'a')console.log(newNum);let newFun = function (num1,num2){return num1+num2;}console.log(newFun(2,3));</script>
</html>

注意:

1js中不存在重载 只有覆盖 后加载的覆盖先加载的

2形参与实参可以不对应 使用时尽量对应

3函数名是一种特殊变量 要注意函数名不要与变量名重复 会覆盖

7.3变量关键字和作用域

    let1.全局变量2.函数内3.循环块内const  修饰常量不能通过=重新赋值var (老版本使用)1.全局变量2.函数内
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body></body>
<script>/*let1.全局变量2.函数内3.循环块内const  修饰常量不能通过=重新赋值var (老版本使用)1.全局变量2.函数内*///全局变量  当前页面 任何地方都可以生效 注意加载顺序let myNum = 10;//let myNum2;let myFun = function(){//函数内作用域//不要用这种写法 浏览器会追加定义全局变量//myNum2 = 20console.log(myNum);console.log(myNum2);}//myFun();// console.log("--------------");// console.log(myNum);// console.log(myNum2);let myStr = "aaa";myStr = "bbb";myStr = 110;console.log(myStr);const myStr2 = "aaa";//如果通过=重新赋值 会报错//不能通过=重新赋值//myStr2 = "bbb";</script>
</html>

8事件

8.1 页面元素 函数 与事件的搭配关系

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><button onclick="myTest()">点我</button>
</body>
<script>/*在页面元素中定义事件 触发自定义函数*/function myTest(){console.log(1111);}</script>
</html>

8.2常用事件

onclick 鼠标单击
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.cls1{width: 80px;height: 80px;font-size: 30px;background-color: lightblue;color: blueviolet;}</style>
</head>
<body><span id="myTitle">特朗普</span><button onclick="myBiu()">biubiubiu</button><hr><input id="myText" type="text"/><button onclick="myChange()">改内容</button></body>
<script>/*1 确立 元素 函数 事件的对应关系2 通过dom树 找到元素 再修改特定的属性 达到改变的效果找元素    document.getElementById("myTitle")操作属性  写 元素.属性 = 新值;读 元素.属性有哪些常见的属性 做页面效果的改变innerHTML   双标签的内容html元素常见属性value       单标签的内容type        表单元素类型sytle       样式className   样式类别.....html元素的属性都可以替换和修改*/function myBiu(){console.log(1111);//js中Element html 标签console.log(document.getElementById("myTitle"));//通过js指定要修改元素的哪些属性console.log(document.getElementById("myTitle").innerHTML);document.getElementById("myTitle").innerHTML = "耳朵受伤了...." }function myChange(){console.log(document.getElementById("myText"));document.getElementById("myText").value = "jack"document.getElementById("myText").type ="button"//document.getElementById("myText").style.color = "#FF0000"document.getElementById("myText").className = "cls1"}</script>
</html>
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style></style>
</head>
<body><input id="text1" type="text"/><button ondblclick="myCopy()">复制</button><input id="text2" type="text"/>
</body>
<script>/*点击事件  鼠标单击  onclick鼠标双击  ondblclick*/function myCopy(){//console.log(1111);/*1找元素2改属性*/let text1Val = document.getElementById("text1").valueconsole.log(text1Val);document.getElementById("text2").value = text1Val}/*1 确立 元素 函数 事件的对应关系2 通过dom树 找到元素 再修改特定的属性 达到改变的效果找元素    document.getElementById("myTitle")操作属性  写 元素.属性 = 新值;读 元素.属性有哪些常见的属性 做页面效果的改变innerHTML   双标签的内容html元素常见属性value       单标签的内容type        表单元素类型sytle       样式className   样式类别.....html元素的属性都可以替换和修改*/</script>
</html>
onmouseover 鼠标移入 onmouseout 鼠标移出
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.mydiv{width: 200px;height: 200px;border: 1px solid black;}</style>
</head>
<body><div id="mydiv" class="mydiv" onmouseover="changeBGC('blue',this)" onmouseout="changeBGC('white',this)"></div><button onclick="changeBGC('blue',this)">换背景颜色</button></body>
<script>/*onmouseover  鼠标移入onmouseout   鼠标移出如果赋值是字符串 注意 带引号 ''数字   11 22bol值  true false关键字this直接使用this 默认指向 当前窗口 事件调用函数时 实参传this可以获取到当前发生事件的元素可以简化元素的获取过程*/function changeBGC(myColor,myObj){console.log(myObj);myObj.style.backgroundColor = myColor}// function changeBGC(){//     document.getElementById("mydiv").style.backgroundColor = "#F00"// }// function changeBGC2(){//     document.getElementById("mydiv").style.backgroundColor = "white"// }</script>
</html>
onfocus 获得焦点 onblur 失去焦点
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><!-- <input id="text1" type="text" onfocus="changeColor('#F0A','text1')" onblur="changeColor('black','text1')"/><br><input id="text2" type="text" onfocus="changeColor('#F0A','text2')" onblur="changeColor('black','text2')"/><br> --><input type="text" onfocus="changeColor('#0FA',this)" onblur="changeColor('black',this)"/><br><input type="text" onfocus="changeColor('#0FA',this)" onblur="changeColor('black',this)"/><br><input type="text" onfocus="changeColor('#0FA',this)" onblur="changeColor('black',this)"/><br><input type="text" onfocus="changeColor('#0FA',this)" onblur="changeColor('black',this)"/><br><input type="text" onfocus="changeColor('#0FA',this)" onblur="changeColor('black',this)"/><br>
</body>
<script>/*onfocus 获得焦点onblur  失去焦点*/function changeColor(myColor,myObj){myObj.style.color=myColor}// function changeColor(myColor,testId){//    document.getElementById(testId).style.color=myColor// }// function changeColor2(){//    document.getElementById("text1").style.color="black"// }</script>
</html>
onchange 内容改变
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><input type="text" onchange="myTest(this)"/><hr><select onchange="changeTitle(this)"><option disabled selected>-----请选择-----</option><option value="您好">中国</option><option value="hello">美国</option><option value="八嘎呀路">日本</option></select><h1 id="myTitle"></h1>
</body>
<script>/*onchange 文本框使用   失去焦点 内容改变下拉列表     点击选项 内容改变*/function changeTitle(myObj){document.getElementById("myTitle").innerHTML = myObj.value}// function changeTitle(myObj){//     console.log(myObj.value);//     let helloText = "";//      switch(myObj.value){//         case '001':helloText = "您好";break;//         case '002':helloText = "hello";break;//         case '003':helloText = "八嘎";break;//      }//     document.getElementById("myTitle").innerHTML = helloText// }function myTest(myObj){console.log( myObj.value);}</script>
</html>
http://www.vanclimg.com/news/1880.html

相关文章:

  • day4_javascript2
  • 电化学
  • 亚马逊AutoML论文获最佳论文奖
  • 前端加密实现
  • SQL注入漏洞
  • MX galaxy Day16
  • 30天总结-第二十八天
  • 金华の第二场模拟赛
  • [Unity] 项目的一些系统架构思想
  • 多github账号的仓库配置
  • Project 2024 专业增强版安装激活步骤(附安装包)2025最新详细教程
  • MX galaxy Day15
  • Plant Com | 将基因编辑与组学、人工智能和先进农业技术相结合以提高作物产量
  • PhenoAssistant:一个用于自动植物表型分析的人工智能系统
  • 在Docker中,可以在一个容器中同时运行多个应用进程吗?
  • Computomics:利用先进的机器学习实现预测性植物育种
  • 在运维工作中,Docker 与 Kvm 有何区别?
  • 利用分子与数量遗传学最大化作物改良的遗传增益
  • 在运维工作中,详细说一下 Docker 有什么作用?
  • 7.29总结
  • busybox的编译简介
  • 基因组辅助作物改良
  • 洛谷题解:P1514 [NOIP 2010 提高组] 引水入城
  • 如何利用机器学习构建种质资源/品种分子鉴定系统?
  • 科学通报 | 万向元:生物育种技术助力作物杂种优势利用
  • 7-29
  • DP 优化 - 决策单调性与四边形不等式优化
  • 科学通报 | 大豆杂种优势利用的挑战与创新路径
  • 整合多组学先验信息来提升肉牛基因组预测的准确性
  • windows下的/data目录