前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >js学习

js学习

作者头像
用户8447427
发布2022-08-18 15:41:30
1.6K0
发布2022-08-18 15:41:30
举报
文章被收录于专栏:userlyz学习记录

JavaScript的入门案例

代码语言:javascript
复制
<head>
    <meta charset="utf-8">
    <title></title>
    <script type="text/javascript">
        /*javascript代码*/
        //int a=10;
        var a=10;
        //int b=20;
        var b=20;
        //int temp=a+b;
        var temp=a+b;
        //System.out.println(temp);
        alert(temp);
    </script>
</head>

可以看到JavaScript的语言特征和编程注意事项

特征:

1、JavaScript无需编译,直接被浏览器解释并执行

2、JavaScript无法单独运行,必须镶嵌在html代码中运行

3、JavaScript的执行过程是从上到下的

注意:

1、JavaScript没有访问系统文件的权限

2、由于JavaScript无需编译,是上到下执行的解释执行,所以在保证可读性的情况下,允许使用链式编程

3、JavaScript和java没有直接关系

JavaScript的组成

JavaScript是由三部分组成:ECMAScript、DOM、BOM

ECMAScript(核心):规定了js的语法和基本对象

DOM 文档对象模型:处理网页内容的方法和接口

BOM 浏览器对象模型:与浏览器交互的方法和接口

JavaScript的引入方式

内部脚本

在html文本内部 script脚本语言可以放在head之中后者在html之后,一般建议在head之中

代码语言:javascript
复制
<head>
    <meta charset="utf-8">
    <title></title>
    <script type="text/javascript">
        /*javascript代码*/
        //int a=10;
        var a=10;
        //int b=20;
        var b=20;
        //int temp=a+b;
        var temp=a+b;
        //System.out.println(temp);
        alert(temp);
    </script>
</head>

外部脚本

01demo02.html

代码语言:javascript
复制
<script type="text/javascript" src="01demo1.js">/*这部分代码不会被执行,因为会被引入的01demo01.js的代码覆盖*/</script></script>
/*src="01demo1.js"是写的是js的地址*/

script标签放置位置

body的结束标签之前

代码语言:javascript
复制
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
        <h1>你好</h1>
		<script>
			alert("内部的hello")
		</script>
	</body>
</html>

优点:

保证html展示内容优先考虑。最后加载脚本,增强用户体验

JavaScript语法及规则

注释

单行注释是**//注释内容**

多行注释是**/注释内容/**

HBuilder多行注释快捷键 ctrl+shift+/

变量

变量的声明和赋值:

代码语言:javascript
复制
var 变量名;变量赋予默认值,默认值是undefined(未定义的)
var 变量名=值;
命名javascript严格区分大小写

基本数据类型

代码语言:javascript
复制
<script>
    var str1="nihao";
    var str2="helo";
    alert(typeof(str1))//string
    var flag1=true;
    var flag2=false;
    alert(typeof(flag1))//boolean
    var num1=1;
    var num2=1.55;
    var num3=-1;
    alert(typeof(num1))//Number
    var obj=null;
    alert(typeof(obj))//object就这一个是比较特殊的
    var a;
    var b=undefined;
    alert(typeof(b))//undefined


    var a=100;
    a=true;
    alert(a)//会输出true,不会输出100;
    alert(typeof(a))
</script>

引用数据类型

代码语言:javascript
复制
var a=new String();
var a=new String;

运算符

其他都是一样的

代码语言:javascript
复制
运算符 === 只有值和类型两个都相等才是相等的
	  == 仅比对值
var str1=10;
var str2="10";
str1==str2  true
str1===str2  false

正则对象

创建方式

代码语言:javascript
复制
var reg=new RegExp("表达式")//(开发基本不用)
var reg=/^表达式$/   只要有有一个字符不满足正则即为false,全部合格那就是true
		/表达式/     只要有成立的字符那就是true,q


var reg=/^\s*$/;//0-多个空格
var string="      ";
alert(reg.test(string))//true

js数组对象

js数组可以看作java中的arraylist集合

数组中每一个成员都没有限制,可以存放任意类型

数组成都可以自动修改

创建方式

1、var arr=[1,2,3,”a,true];//常用的js数组

2、var arr=new Array();//创建一个数组对象,数组默认长度为0

3、var arr=new Array(4);//数组长度是4,长度是动态可调的

4、var arr=new Array(1,2);//数组元素是1,2

常用方法

属性:length 数组中的元素数目

代码语言:javascript
复制
var arr=['hello','你好',1,2];
alert(arr.length)//4
arr[1]="nihao";
alert(arr.length)//4
arr[4]=123
alert(arr.length)//5
arr[10]=123
alert(arr.length)//11

方法:join():将数组的所有元素放入一个字符串,元素通过指定的分隔符进行分隔

​ pop():删除并返回最后一个元素

​ push():向数组末尾添加一个或者更多的元素,并返回新的长度

​ reverse():颠倒数组中元素的顺序

代码语言:javascript
复制
var arr=[123,456,789]
var str=arr.join("+")
alert(str)//123+456+789
alert(arr.length)//3

//reverse将数组进行物理反转
var arr2=arr.reverse()
alert(arr2)//789,456,123

//pop删除并返回最后一个元素
var arr=[123,456,789]
var po=arr.pop()
alert(po)
alert(arr.length)

//push向数组末尾添加一个或者更多的元素,并返回新的长度
var arr=['a','b','c','d']
var push=arr.push('e')
alert(push+"||"+arr+"||"+arr.length)
var push=arr.push('e','f','g')
alert(push+"||"+arr+"||"+arr.length)

全局函数

执行

代码语言:javascript
复制
var x=10;
alert(x)
var y=10+20;
alert(y);
eval("var z=10")//eval可以把传入的字符串,作为JavaScipt代码执行
//可以扩展程序功能
//新只能去传递基本数据类型的字符串,而不能床底字符串对象
alert(z)

编码和解码

encodeURI():把字符串编码为URI,将字符串中的中文进行编码

decodeURI():解码某个编码的URI,

代码语言:javascript
复制
var msg="https:www.baidu.com/index.html?username=张三&password=123";
alert(msg)
var temp=encodeURI(msg)
//https:www.baidu.com/index.html?username=%E5%BC%A0%E4%B8%89&password=123
alert(temp)
alert(decodeURI(temp))

URI和URL的区别

URI:统一资源标识符,标识资源详细名称,必须包含资源名

URL:统一资源定位器,定义资源的网络位置,包含http://

简单来说就是网址的前面的主网址的就是url,后面的详细地址就是uri

字符串转数字

parseInt(string):解析一个字符串并返回一个整数

parseFloat(string):解析一个字符串并返回一个整数

代码语言:javascript
复制
var str="10.99"
alert(parseInt(str))//10
alert(parseFloat(str))//10.99

自定义函数/自定义方法

函数格式

function 方法名(参数列表){

​ 函数体

}

注意:

函数定义函数必须是小写的function

函数无需返回值类型,直接在function后面书写 方法名

参数列表中的参数值不用写var,直接写参数名就好

这个可以返回值,也可以不返回值,也可以返回空值三种 : return 具体值;不写return;return;

函数的注意事项

不存在方法重载,只有方法覆盖,最后定义的函数覆盖之前的定义

代码语言:javascript
复制
function getSum(a,b){
return a+b
}
alert(getSum(10,20))

//针对于重名的函数,后定义的函数会覆盖掉前面定义的函数
//只能调用到最后定义的函数,即使形参不匹配也不影响使用
//对于那一些缺失的参数,会默认为undefined
function print(a,b){
alert(a+'-'+b)
}
function print(a,b,c){
alert(a+'-'+b+'-'+c)
}
print(1,2)
print(1,2,3)

自定义对象

创建方式1–function构造函数

引用数据类型都是对象,而对象在JavaScript中可以用函数来表示

function 对象名(){

​ 函数体

}

代码语言:javascript
复制
//方法1,无参构造
function Person(){//定义一个对象
	this.name='小刘';//声明了一个name属性,this指代的就是当前的person对象
	this.age=18;
}
var per=new Person()
alert(per.name+'||'+per.age)


//方法1、有参构造
function Person(n,a){//定义一个对象
	this.name=n;//声明了一个name属性,this指代的就是当前的person对象
	this.age=a;
}
var per=new Person('小张',18)
alert(per.name+'||'+per.age)

//方法2
function Person(n,a){//定义一个对象
	this.name=n;//声明了一个name属性,this指代的就是当前的person对象
	this.age=a;
}
var per=new Person('小张',18)
per.sex="男"
alert(per.name+'||'+per.age+'||'+per.sex)

构造方式2–对象直接量

var 对象名={属性名1:”属性值1”,属性名2:”属性值2”,属性名3:”属性值3”}

该方式直接创建出来实例对象,无需构造函数,无需再new创建实例对象,直接使用即可

代码语言:javascript
复制
var per={name:"张三",age:18,}
per.sex="男"
alert(per.name+'||'+per.age+'||'+per.sex)

BOM对象

BOM(Browser Object Model)浏览器对象模型,用来执行浏览器的相关操作

windows对象方法
windows对象方法

消息框

1、alert()警告框

2、confirm() 确认框,用于告知用户信息,并收集用户的选择

例:

代码语言:javascript
复制
//有返回值,返回值类型为boolean 确定时ture,取消时false
var flag=confirm("您好呀")
alert(flag)

定时器

启动循环定时器

格式

setlnterval(调用方法,毫秒值)

代码语言:javascript
复制
function run1(){
alert('hello,')
}
setInterval("run1()",3000)

function run1(){
	alert('hello,')
}
var vvid=setInterval("run1()",3000)
clearInterval(vvid)
//clearInterval(循环定时器ID) 取消循环定时器

需求:两秒之后显示,显示之后删除对应的循环计时器

代码语言:javascript
复制
var id;
function run1(){
	alert('helllo,world');
	clearInterval(id);
}
id=setInterval("run1()",2000)

一次性定时器

启动:setTimeout(方法名,毫秒值)

取消 :clearTimeout(id)//取消一次性定时器

Location对象

href属性,设置了href属性那就会跳转到该网页

代码语言:javascript
复制
var url=location.href;
alert(url)

location.href='demo2.html'

需求:两秒之后跳转到百度

代码语言:javascript
复制
function jump(){
location.href='http://www.baidu.com'
}
setTimeout("jump()",2000)

DOM对象

每一个标签会被加载成DOM树上的一个元素节点对象

每一个标签的属性会被加载成DOM树上的一个属性节点对象

每一个标签的内容体会被加载成DOM树上的一个文本节点对象

整个DOM树,是一个文档节点对象,即DOM对象

一个html文档加载到内存中就会形成一个DOM对象

获取元素对象的四种方式

getElementById()

通过元素的id获取元素对象,如果找不到,那就返回null

代码语言:javascript
复制
<input type="text"  id="t1"/>
<script>
    var t1=document.getElementById("t1")
    alert(t1) 
    var t2 =document.getElementById("t2")
    alert(t2)
</script>

getElementByName()

通过元素的name属性获取符合要求的所有元素

代码语言:javascript
复制
<input type="checkbox" name="hobby" value="read"/>
<input type="checkbox" name="hobby" value="code"/>
<input type="checkbox" name="hobby" value="run"/>
<script>
    var arr=document.getElementsByName("hobby")//返回的是元素接待你对象 数组
    alert(arr.length)
</script>

getElementByTagName()

通过元素名属性(标签名)获取符合要求的所有元素

代码语言:javascript
复制
<ul>
    <li>javaee</li>
    <li>android</li>
    <li>ios</li>
    <li>python</li>
</ul>
<script>
    var arr=document.getElementsByTagName("li")
    alert(arr.length)
</script>

getElementByClassName()

元素的class属性获取符合要求的所有元素,找不到返回空数组

代码语言:javascript
复制
<input type="radio"  name="sex" class="h1"/>
<input type="radio"  name="sex" class="h1"/>
<script>
    var arr=document.getElementsByClassName("h1")
    alert(arr.length)
</script>

元素对象常见属性

value:获取或者更改元素对象的value值

代码语言:javascript
复制
<input type="text"  id="t1" value="你好"/>
<script>
    var t1=document.getElementById('t1')
    var text=t1.value 
    alert(text)
    t1.value="你好吗"
</script>

classname:获取和更改class属性

代码语言:javascript
复制
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        .ys1{
            color:red;
        }
        .ys2{
            color:blue;
        }
    </style>
</head>
<body>
    <span id='s1' class="ys1">今天心情还是很不错的</span>
    <script>
        var t1=document.getElementById('s1')
        alert(t1.className)
        t1.className='ys2'
    </script>
</body>

checked:获取或者设置元素的checked属性值

代码语言:javascript
复制
<body>
    <input type="checkbox" id="hobby"/>
    <script>
        var hobby=document.getElementById("hobby")
        alert(hobby.checked)

        //复选框默认选中
        hobby.checked=true
    </script>
</body>

innerHTML:获取或者设置对象的内容体

代码语言:javascript
复制
<span id ="d1">今天天气好晴朗</span>
<script>
    var span=document.getElementById("d1")
    alert(span.innerHTML)
    span.innerHTML="你好呀"
    alert(span.innerHTML)
    //追加
    span.innerHTML+=",我不是很好"
</script>

JS事件

入门案例

代码语言:javascript
复制
<head>
    <meta charset="utf-8">
    <title></title>
    <script>
        function run1(){
            alert("你点到我了啊")
        }
    </script>

</head>
<body>
    <input type="button" value="点我啊" onclick="run1()">
</body>

驱动机制简述

1、事件源:专门产生世家你的组件

2、事件:事件源产生的动作或者事情

3、监听器:专门处理事件源所产生的事件

4、注册/绑定监听器:监听事件源,是否有指定事件产生

常见的js事件

点击事件

onclick属性onclick=”执行的方法名”

焦点事件

获取焦点事件(onfocuse)
代码语言:javascript
复制
<head>
    <meta charset="utf-8">
    <title></title>
    <script>
        function run1(){
            alert("获取到焦点了")
        }
    </script>
</head>
<body>
    <!--获取焦点时弹出对话框-->
    <input type="text"  onfocuse="run1()" />

</body
失去焦点事件(onblur)
代码语言:javascript
复制
<head>
    <meta charset="utf-8">
    <title></title>
    <script>
        function run1(){
            alert("获取到焦点了")
        }
    </script>
</head>
<body>
    <!--获取焦点时弹出对话框-->
    <input type="text"  onblur="run1()" />

</body

域内容改变事件(onchange)

元素组件的值发生改变时触发

onchange属性onchange=”定义的方法函数”

代码语言:javascript
复制
<head>
    <meta charset="utf-8">
    <title></title>
    <script>
        function run1(){
            alert("域内容中的值改变了")
        }
    </script>
</head>
<body>
    <select onchange="run1()">
        <option value="B">北京</option>
        <option value="S">上海</option>
        <option value="SH">深圳</option>
    </select>
</body>

加载完毕事件(onload)

元素组件加载完毕之后会触发

onload属性onload=”定义的函数方法”

代码语言:javascript
复制
<head>
    <meta charset="utf-8">
    <title></title>
    <script>
        function run1(){
            alert("加载完了啊")
        }
    </script>
</head>
<body onload="run1()">
    <h1>这是主体</h1>
</body>

表单提交事件(onsubmit)

表单表格提交按钮被点击之后会触发,通常适用于表单数据的校验

onsubmit

注意,该事件需要返回boolean类型的值来执行 提交或者阻止 表单数据的操作

事件得到true,提交表单数据提交

事件得到false,阻止表单数据的提交

代码语言:javascript
复制
<head>
    <meta charset="utf-8">
    <title></title>
    <script>
        function run1(){
            alert("要提交了奥");
            return true;
        }
    </script>
</head>
<body>
    <form onsubmit="run1()">
        <input type="text" name="" id="" value="" />
        <input type="submit" name="" id="" value="提交" />
    </form>
</body>

键位弹起事件(onkeyup)

在组件中输入某些内容时,键盘键位弹起时触发该方法

代码语言:javascript
复制
<head>
    <meta charset="utf-8">
    <title></title>
    <script>
        function run1(){
            alert("键位谈起了")
        }
    </script>
</head>
<body>
    <input type="text" name="" id="" value="" onkeyup="run1()"/>
</body>

常用鼠标事件

鼠标移入事件(onmouseover)

鼠标移入某一个元素组件时触发

鼠标移出事件(onmouseout)

鼠标移出某一个元素组件时触发

代码语言:javascript
复制
<head>
    <meta charset="utf-8">
    <title></title>
    <script>
        function run1(){
            alert("鼠标移入了")
        }
        function run2(){
            alert("鼠标移出了")
        }
    </script>
</head>
<body>
    <input type="text" name="" id="" value="移入"  onmouseover="run1()"/>
    <input type="text" name="" id="" value="移出"  onmouseout="run2()"/>
</body>

js事件的两种绑定方式

元素事件句柄绑定

将事件以元素的方式写到标签的内部,进而绑定对应的函数

绑定一个无参函数,绑定一个有参函数,绑定一个参数函数(对象)

代码语言:javascript
复制
<head>
    <meta charset="utf-8">
    <title></title>
    <script>
        function run1(){
            alert("run1")
        }
        function run2(str){
            alert(str)
        }
        function run3(obj){
            alert(obj.value)
        }
        function run4(){
            alert("run4")
        }
        function run5(){
            alert("run5")
        }
    </script>
</head>
<body>
    <input type="text" name="" id="" value="111"  onclick="run1()"/>
    <input type="text" name="" id="" value="222"  onclick="run2('你好啊')"/>
    <input type="text" name="" id="" value="333"  onclick="run3(this)"/>
    <input type="text" name="" id="" value="111"  onclick="run1(),run4(),run5()"/>
</body>

DOM绑定

原事件绑定的方法

代码语言:javascript
复制
<head>
    <meta charset="utf-8">
    <title></title>
    <script>
        function run1(){
            alert("加载完毕")
        }
    </script>
</head>
<body onload="run1()">
</body>

DOM绑定

代码语言:javascript
复制
<head>
    <meta charset="utf-8">
    <title></title>
    <script>
			function run1(){
				alert("加载完毕")
			}
			//DOM绑定方式 对象.事件属性
			window.onload=run1;
			//DOM绑定方式 匿名函数 可绑定多共和函数
			window.onload=function(){
				run1();
                run2();
			};
		</script>
</head>
<body>
</body>

DOM绑定联系

代码语言:javascript
复制
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script>
			function run1(){
				alert("run1")
			}
			function run2(){
				alert("run2")
			}
			window.onload=function (){
				var input=document.getElementById("d1")
				input.onclick=function(){
					run1();
					run2();
				}
			}
		</script>
	</head>
	<body>
		<input type="text" id="d1" />
	</body>
</html>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-12-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • JavaScript的入门案例
  • 可以看到JavaScript的语言特征和编程注意事项
    • 特征:
      • 注意:
      • JavaScript的组成
      • JavaScript的引入方式
        • 内部脚本
          • 外部脚本
            • script标签放置位置
            • JavaScript语法及规则
              • 注释
                • 变量
                  • 变量的声明和赋值:
                  • 基本数据类型
                  • 引用数据类型
                  • 运算符
                • 正则对象
                  • 创建方式
                • js数组对象
                  • 创建方式
                  • 常用方法
                • 全局函数
                  • 执行
                  • 编码和解码
                  • URI和URL的区别
                  • 字符串转数字
                • 自定义函数/自定义方法
                  • 函数格式
                  • 函数的注意事项
                • 自定义对象
                  • 创建方式1–function构造函数
                  • 构造方式2–对象直接量
              • BOM对象
                • 消息框
                  • 定时器
                    • 启动循环定时器
                    • 一次性定时器
                  • Location对象
                  • DOM对象
                    • 获取元素对象的四种方式
                      • getElementById()
                      • getElementByName()
                      • getElementByTagName()
                      • getElementByClassName()
                    • 元素对象常见属性
                    • JS事件
                      • 驱动机制简述
                        • 常见的js事件
                          • 点击事件
                          • 焦点事件
                          • 域内容改变事件(onchange)
                          • 加载完毕事件(onload)
                          • 表单提交事件(onsubmit)
                          • 键位弹起事件(onkeyup)
                        • 常用鼠标事件
                          • 鼠标移入事件(onmouseover)
                          • 鼠标移出事件(onmouseout)
                      • js事件的两种绑定方式
                        • 元素事件句柄绑定
                          • DOM绑定
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档