日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

WBE前端笔记3:JavaScript练习--基础语法

發(fā)布時間:2023/12/20 javascript 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WBE前端笔记3:JavaScript练习--基础语法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

插入Javascript腳本的三種方式

1.行間事件方式 以及 按鈕的onclink和alert

<body><input type="button" value="hello" onclick="window.alert('hello word!!!!!!!')"></input> </body>

使用上述代碼即可實現(xiàn)點擊按鈕彈出窗口的效果

2.代碼塊的方式

<script type="text/javascript">window.alert("hello")</script>

執(zhí)行上述代碼,打開網(wǎng)頁就會顯示彈窗

3.外部文件的方式

創(chuàng)建js文件夾并在其中創(chuàng)建hello.js
在內(nèi)部寫入代碼

window.alert("hello kitty");

然后在html中調(diào)用

<body><script type="text/javascript" src="js/hello.js"></script> </body>

運行后結(jié)果為

4.函數(shù)

編寫如圖所示代碼

<body><input type="button" onclick="sayhello('wwwww')" /><script type="text/javascript">function hanshu(a,b){window.alert(a+"?"+b);}hanshu("abc",true);hanshu();hanshu(1);hanshu(1,2);hanshu(1,2,3);// 第二種聲明方式mysum=function(a,b){return a+b;}var res=mysum(10,20);window.alert(res);function sayhello(a){window.alert("hello!!!"+a);}</script></body>

執(zhí)行結(jié)果為:

全局變量與局部變量相較于java不同的地方

<script type="text/javascript">function sayhello(){p="asdadasd";}sayhello();window.alert(p);</script>

調(diào)用結(jié)果為

在JavaScript中不使用var關鍵字進行聲明的變量,都為全局變量

js中的函數(shù)是不能重載的

函數(shù)若重名 后聲明的會覆蓋前面的

數(shù)據(jù)類型

number

NaN

在js腳本運行數(shù)學運算時,若結(jié)果不是數(shù)字,則會返回nan
例如

<body><script type="text/javascript">var res = 199/"http";window.alert(res);</script></body>

infinity

無窮大 在js中計算 100/0時變量中的值將為infinity

isNaN函數(shù)

isNaN會判斷傳入?yún)?shù)是否為數(shù)字
如果不是數(shù)字 返回true
是數(shù)字,返回flase
特殊的bool型的數(shù)據(jù)使用isNaN也會被判定為數(shù)字

number函數(shù)

number函數(shù)會將傳入的參數(shù)

<body><script>var i=Number("123456");window.alert(typeof(i));</script> </body>

結(jié)果為:

parseInt函數(shù)

使用parseInt可以將其他數(shù)據(jù)類型暴力取整

<body><script>var i=Number("123456.999");window.alert(parseInt(i));</script> </body>

<body><script>var i=Number("123456qwe");window.alert(parseInt(i));</script> </body>

運行結(jié)果都是:

Math.ceil函數(shù)

此函數(shù)作用與parseInt類似 與之不同的是,此函數(shù)是向上取整

特殊

js中10/3不是3 而是3.3333333

Boolean類型

boolean只有ture和false兩個值

Boolean函數(shù)

此函數(shù)會將任意類型的數(shù)據(jù)轉(zhuǎn)換為Boolean類型

Boolean在js中會被隱式調(diào)用
下面兩種方式是等價的

if(Boolean("asd")){}if("abc"){}

string類型

常用屬性和方法

<body><script type="text/javascript">console.log("abcdef".length);//6console.log("qwerty".charAt(3))//rconsole.log("qwe".concat("rty"))//qwertyconsole.log("a=b&b=c".indexOf("="))//1console.log("a=b&b=c".lastIndexOf("="))//5console.log("1-1-501".replace("-",","))//1,1-501(只能替換第一個)var arr = "1-1-501".split("-");//拆分字符串 //不需要使用var[]for(var i=0;i<arr.length;i++){console.log(arr[i]);}console.log("abcdefg".substr(2))//cdefgconsole.log("abcdefg".substring(2))//cdefg//在參數(shù)為兩個時//substr為(start,len)//substring為(start,end)(不包括end)console.log("abcdefg".substr(2,3))//cdeconsole.log("abcdefg".substring(2,3))//cconsole.log("Abc".toLowerCase())//abcconsole.log("Abc".toUpperCase())//ABC</script></body>

Object

與java相同,可以把Ovject類型看成是所有類的基類
Object對象其中最重要的是它的prototype屬性
它可以動態(tài)的給類擴展方法和屬性
例如

<script type="text/javascript">var obj = new Object();Object.prototype.mytest = function(){console.log("test success");}obj.mytest();Object.prototype.username="zhangsan";console.log(obj.username)</script>

上述代碼結(jié)果為

<script type="text/javascript">/*js中定義類第一種方法:function 類名(形式參數(shù)列表){this.屬性名 = 參數(shù)this.屬性名 = 參數(shù)this.方法名 = function(){}}第二種方法:類名 = function(形式參數(shù)列表){this.屬性名 = 參數(shù)this.屬性名 = 參數(shù)this.方法名 = function(){}}*///sayHello既是函數(shù),也是類,取決于如何調(diào)用function sayHello(){}//這樣調(diào)用是當作函數(shù)調(diào)用,不會在堆中new對象sayHello();//new 來調(diào)用 就是當作類來調(diào)用,會在瀏覽器的堆中開辟新對象var obj= new sayHello();</script>

示例(員工類):

function Emp(empno,ename,sal){//屬性this.empno=empno;this.ename=ename;this.sal = sal;//方法this.work=function(){console.log(ename+"working.....");}}//創(chuàng)建對象var v1=new Emp();v1.work();var v2=new Emp(1);v2.work();var v3=new Emp(1,"zhangsan");v3.work();var v4=new Emp(1,"zhangsan",900);v4.work();console.log("第一種方式"+v4.sal);//另一種引用方式console.log("第二種方式"+v4["sal"])//給emp動態(tài)添加方法Emp.prototype.getSal=function(){return this.sal;}console.log(v4.getSal());

運行結(jié)果:

= =和= = =

===相當于java里的equals,即比較數(shù)據(jù)是否相等,又比較數(shù)據(jù)類型是否一致 ==則只比較值是否相等 var v1=true; var v2=1; console.log(v1==v2);//true console.log(v1===v2);//flase

null NaN 和undefined區(qū)別

null == undefined 但數(shù)據(jù)類型不同
NaN與任何都不能等同

javaScript 事件

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title> </head> load事件(在頁面加載完畢之后觸發(fā)) <body onload="console.log('加載完畢')">焦點事件:<input type="text" onblur="console.log('失去焦點')" onfocus="console.log('獲得焦點')"><br>單擊事件:<input type="button" onclick="console.log('單擊')" value="單擊"><br>雙擊事件:<input type="button" ondblclick="console.log('雙擊')" value="雙擊"><br>按鍵事件:<input type="text" onkeydown="console.log('按鍵按下')" onkeyup="console.log('按鍵抬起')"><br>鼠標相關事件<div style="border: 1px solid black; width: 300px; height: 300px;"onmouseover="console.log('鼠標經(jīng)過了')"onmousemove="console.log('鼠標在div內(nèi)移動了')"onmouseout="console.log('鼠標離開了')"onmouseup="console.log('鼠標彈起了')"onmousedown="console.log('鼠標按下了')"></div><br>表單事件<form onsubmit="alert('表單提交了')" onreset="console.log('表單重置了')"><input type="submit" value="提交"><input type="reset" value="重置"></form><br>選中文本事件和修改事件<input type="text" onselect="console.log('文本被選中了')" onchange="console.log('文本被修改')"></textarea><br><select onchange="console.log('選項被修改')"> <option value="">請選擇您的學歷</option><option value="bk">本科</option><option value="zk">專科</option></select> </body> </html>

ECMAScript DOM BOM

ECMAScript是javaScript的語法核心
DOM是組件如按鈕,表格等,在js中 document是表示DOM組件
BOM是所有瀏覽器操作 如彈窗等 在js中使用window表示

事件注冊

事件注冊有兩種方式
第一種就是直接在元素中通過onclick聲明
第二種

<body><input type="button" id="mybutton1" value="button1"/><input type="button" id="mybutton2" value="button2"/><script type="text/javascript">function t1(){console.log("1111");window.alert("t1被調(diào)用了");}var b1=document.getElementById("mybutton1");b1.onclick=t1;console.log(b1);var b2=document.getElementById("mybutton2");b2.onclick = function (){console.log("2222");window.alert("匿名函數(shù)被調(diào)用了")}console.log(b2);</script> </body>

代碼的執(zhí)行順序

在使用DOM獲取元素時要注意腳本要寫在元素聲明之后

<body><script type="text/javascript">var bt = document.getElementById("bt");bt.onclick = function(){alert("匿名函數(shù)");}</script><input type="button" id="bt" value="BUTTON"/> </body>

像上面這樣的代碼,因為先執(zhí)行的腳本,導致bt對象為null,此時修改順序即可解決問題

或者也可以將代碼改為下面這種寫法

<body onload="load()"><script type="text/javascript">function load (){var bt = document.getElementById("bt");bt.onclick = function(){alert("匿名函數(shù)");}}</script><input type="button" id="bt" value="BUTTON"/> </body>

或者

<body><script type="text/javascript">window.onload=function(){var bt = document.getElementById("bt");bt.onclick = function(){alert("匿名函數(shù)");}}</script><input type="button" id="bt" value="BUTTON"/> </body>

鍵盤監(jiān)聽

上面提到了一系列鍵盤監(jiān)聽事件,我們可以通過以下代碼獲取得到的按鍵

<body><input type="text" id="username"/><script type="text/javascript">function DL (a){if(a.keyCode==13){console.log("點擊了enter");}}window.onload=function(){var username = document.getElementById("username");username.onkeypress=DL;}</script></body>

<body><input type="text" id="username"/><script type="text/javascript">window.onload=function(){var username = document.getElementById("username");username.onkeypress=function(a){if(a.keyCode==13){console.log("點擊了enter")}}}</script></body>

練習 移動方塊

<body id="body"><div id="person" style="width: 10px; height: 10px; position: absolute; left: 50px; top: 50px; background-color: #2F2D2E;"></div><script type="text/javascript">window.onload=function(){person = document.getElementById("person");body = document.getElementById("body");speed = 1.0;last_key='q';window.onkeydown=function(data){var y=parseInt(person.style.top);var x=parseInt(person.style.left);if (last_key==data.key){speed=speed+0.5;}else {speed=1;}last_key = data.key;if(data.key=='w'&&y>30){y=y-speed;person.style.top=y+'px';}if(data.key=='s'&&y<window.innerHeight-30){y=y+speed;person.style.top=y+'px';}if(data.key=='a'&&x>30){x=x-speed;person.style.left=x+'px';}if(data.key=='d'&&x<window.innerWidth-30){x=x+speed;person.style.left=x+'px';}}}</script></body>

void運算符

void運算符的用法是 void(表達式)
那么表達式返回的將返回空值
假如我們想有一個超鏈接樣式的文本,單擊后執(zhí)行js代碼,并且在執(zhí)行完js代碼后不跳轉(zhuǎn)頁面。
我們就可以這樣寫

<body><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><a href="javascript:void(0)" onclick="alert('link')" >dlaks;lkalskdl;akdl;ak;l</a> </body>

如果寫成href=""那么單擊相當于訪問當前頁 ,不符合要求

array 數(shù)組

<body><script type="text/javascript">var a=[];a.push(5);a.push(6);a.push(7);console.log(a.length);// 3console.log("pop"+a.pop());//pop7console.log(a.length);//2/****push和pop符合棧的特點*****/var b = new Array(2001,1,1);var str = b.join("_");console.log(str); //2001_1_1var c=[9,8,7,true,false];c.reverse();for(var i in c){console.log(c[i]); //false true 7 8 9}</script> </body>

date對象

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title> </head> <body><script type="text/javascript">var time=new Date();console.log(time);//Sun Dec 05 2021 14:57:56 GMT+0800 (中國標準時間)year = time.getFullYear();month = time.getMonth();//day = time.getDay(); 這樣獲取到的是星期幾day = time.getDate();console.log(year+"年"+month+"月"+day+"日");//2021年11月5日var strDate = time.toLocaleDateString();var strtime = time.toLocaleTimeString();var strDateTime = time.toLocaleString();console.log(strDate); //2021/12/5console.log(strtime); //下午3:05:30console.log(strDateTime); //2021/12/5 下午3:05:30//獲取1970-1-1 0:0:0到現(xiàn)在的總毫秒數(shù)var now = new Date();var timeMilis = now.getTime();//1638688162376console.log(timeMilis);</script> </body> </html>

總結(jié)

以上是生活随笔為你收集整理的WBE前端笔记3:JavaScript练习--基础语法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。