javaScript學習筆記一:javaScript基礎

javaScript學習筆記一:javaScript基礎

javaScript入門

  1. js是一種直譯式腳本語言,是一種動態類型,弱類型基於原型的語言。也就是說js是一種運行在瀏覽器中的解釋型的編程語言。
  2. js的三種組成

ECMAScript :解釋器,翻譯者(描述了該語言 的語法和基本對象)它是javaScript的標準

DOM(Document Object Model):文檔對象模型,W3C是DOM的標準。

BOM:(Brower Object Model): 瀏覽器對象模型,缺乏標準。

  1. 第一個js代碼實現鼠標的移入移出事件。

鼠標移入事件:onmouseover

鼠標移出事件:onmouseout

步驟:

**1、通過id找到我們要改變的div **

2、修改我們的css屬性

這種寫法有個問題就是各種版本的瀏覽器兼容性差,最好將css屬性寫入到<style裏面。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style type="text/css">
            #tim{
                width: 200px;
                height: 200px;
                border:1px solid black;
                margin: 0 auto;
            }
        </style>
    </head>
    <body>
        <div id="tim" onmouseover="tim.style.background='red'" onmouseout="tim.style.background='white'"></div>
    </body>
</html>

獲取標籤元素的操作

document.getElementById(‘Id名’) 返回這個Id名的元素

document.getElementsByTagName(‘標籤名’) 返回所有這個標籤名的元素集合,返回的是該標籤的數組

document.getElementsByClassName(‘className’) 返回所有這個class的元素的集合。

document.querySelector(“css任意選擇器”) 返回第一個

document.querySelectorAll(“css任意選擇器”) 返回符合的所有

document.documentElement 獲取HTML元素

document.body 獲取body元素

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style type="text/css">
            #tim{
                width: 200px;
                height: 200px;
                border:1px solid black;
                margin: 0 auto;
            }
        </style>
    </head>
    <body>
        <div id="tim" class="xiaodi"></div>
        <script type="text/javascript">
            //返回這個id名的元素。
            //document.getElementById('tim').style.background='red'
            //返回所有這個標籤名的元素集合,獲取到的是一個集合,擁有數組的特性
            //document.getElementsByTagName('div')[0].style.background='black'
            //通過ClassName獲取到的也是一個集合
            //document.getElementsByClassName('xiaodi')[0].style.background='yellow'
            //document.querySelector("css任意選擇器")返回第一個
            //css的選擇器包含div,className,id.
            //使用時,div直接填div,className改爲.className,id修改爲#id
            //document.querySelector("div").style.background='green'
            //document.querySelector("#tim").style.background='red'
            //document.querySelector(".xiaodi").style.background='black'
            //document.querySelectorAll("css任意選擇器")返回所有,返回是一個數組。
            //document.querySelectorAll(".xiaodi")[0].style.background='red'

        </script>
    </body>
</html>

JS編寫的最佳位置

  1. 一般情況下js寫在頁面的任何位置都可以,但是需要Script標籤包括着,但是別寫在html標籤外。
  2. 最常見的寫在head標籤內部或者body內部
  3. 寫在head標籤內需要寫上window.onload包着,要不然會報錯,因爲執行js時頁面標籤沒有加載。

window.onload的作用是當頁面加載完成後自動觸發事件。

一個頁面應該只有一個window.onload事件,如果寫多個,就會覆蓋執行最後一個。

js應該寫在body結束標籤之前。

  • 下面代碼分別是將js寫在head標籤裏,寫在body標籤裏,引用外部js代碼。
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style type="text/css">
            #tim{
                width: 200px;
                height: 200px;
                border:1px solid black;
                margin: 0 auto;
            }
        </style>
        <!-- <script type="text/javascript">
window.οnlοad=function(){
document.getElementById('tim').style.background='red'
}
</script> -->
        <script type="text/javascript" src='js代碼應該寫在哪裏.js'></script>
    </head>
    <body>
        <div id="tim"></div>


        <!-- <script type="text/javascript">
window.οnlοad=function(){
document.getElementById('tim').style.background='black'
}
</script> -->
    </body>
</html>

js輸出以及調試方式

  1. 彈窗型輸出

alert(“輸出內容”)

  1. 瀏覽器調試窗口輸出

console.log(“輸出內容”)

  1. innerHTML和innerText

給獲取到的元素一些內容

document.getElementById(‘id名’).innerHTML=‘內容’

  1. document.write(‘輸出內容’)

輸出內容會清空原有的html再生成一個新的html.

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        <div id='tim'>我是tim盒子</div>
        <div id="rewrite">重寫</div>
        <script type="text/javascript">
            alert('我是彈窗內容')
            console.log('我是在瀏覽器調試窗口')
            document.getElementById('tim').innerHTML='<h1>我是Tim盒子的內容,我被注入進來了</h1>'
            document.getElementById('tim').innerText='<h1>我是Tim盒子內容2,我被注入進來了</h1>'
            document.getElementById('rewrite').onclick=function(){
                document.write('我是新的html,原本的被窩替代掉了')
            }
        </script>	
    </body>
</html>

innerHtml可以帶css的標籤,innerText不能帶css標籤

常見的js事件

onclick 鼠標點擊事件

onmouseover 鼠標移動到某元素上

onmouseout 鼠標從某元素上面移開

onchange 元素值改變,一般用在表單元素上

onkeydown 用戶按下鍵盤按鍵

onfocus 元素獲得焦點

onblur 元素失去焦點

window.onload 頁面加載完成。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style type="text/css">
            #tim{
                width: 300px;
                height: 300px;
                background: red;
                margin: 0 auto;
            }

        </style>
    </head>
    <body>
        <div id="tim"></div>
        <input type="" name="" id="xd">
        <script type="text/javascript">
            document.getElementById('tim').onclick=function(){
                alert('鼠標移入我的範圍內')
            }
            document.getElementById('tim').onmouseover=function(){
                console.log('鼠標移入我的範圍內了')
            }
            document.getElementById('tim').onmouseout=function(){
                console.log('鼠標移出我的範圍內了')
            }
            document.getElementById('xd').onchange=function(){
                console.log(document.getElementById('xd').value)
            }
            //按下鍵盤事件
            document.getElementById('xd').onkeydown=function(){
                console.log('鍵盤按下了   ')
            }
            //獲取焦點事件
            document.getElementById('xd').onfocus=function(){
                console.log('獲取焦點事件')
            }
            //失去焦點事件
            document.getElementById('xd').onblur=function(){
                console.log('失去焦點事件')
            }
        </script>
    </body>
</html>

動手操作div任意樣式

1、創建div和操作按鈕

2、獲取div和按鈕

3、給按鈕添加點擊事件

4、操作div樣式

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style type="text/css">
            #tim{
                width: 100px;
                height: 100px;
                background: red;
                margin: 0 auto;
            }
        </style>
    </head>
    <body>
        <button id="taller">增高</button>
        <button id="longer">增長</button>
        <button id="changebg">改變背景顏色</button>
        <div id="tim"></div>
        <script type="text/javascript">
            //給我們的增高按鈕添加點擊事件。
            document.getElementById('taller').onclick=function(){
                //獲取id名爲tim的div
                document.getElementById('tim').style.height='300px'

            }
            document.getElementById('longer').onclick=function(){
                //增長
                document.getElementById('tim').style.width='300px'
            }
            document.getElementById('changebg').onclick=function(){
                //增長
                document.getElementById('tim').style.background='green'
            }
        </script>
    </body>
</html>

JS的數據類型

  1. 基礎數據類型

字符串:string

數字(整型浮點型):number

布爾:boolean

null:空對象

undefined:未定義

  1. 複雜數據類型

數組:Array

對象:Object

  1. 檢查數據類型的兩種基本方法

typeof

Object.prototype.toString.call(‘數據’)//鑑別複雜數據類型、引用數據類型。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        <script type="text/javascript">
            //字符串
            console.log(typeof('string'))
            //數字
            console.log(typeof(345))
            //布爾
            console.log(typeof(true))
            //null		就相當於一個空的對象
            console.log(typeof(null))
            //undefined
            console.log(typeof(undefined))
            //object
            console.log(typeof({}))
            //鑑別複雜數據類型
            console.log(Object.prototype.toString.call({}))
            //數組
            console.log(typeof([]))
            //鑑別複雜數據類型
            console.log(Object.prototype.toString.call([]))
        </script>
    </body>
</html>

其中Object.prototype.toString.call()用於檢測複雜數據類型(對象,數組)

JS的變量

  1. 定義變量

var name

  1. 變量的規則

1、首字母必須是字母,或下劃線,或美元符號開頭,不能是數字。

2、後面的可以是字母,或下劃線,或美元符號,或數字,字母區分大小寫。

3、例如:var name 和var Name是不同的變量。

4、變量可以理解爲取一個別名,方便操作。

  1. 定義一個字符串
var name='zhangsan'
  1. js是先定義再執行的,即使沒有寫上定義代碼,js也會自動定義的,只不過沒有賦值。沒有賦值就是undefined(未定義)

js自動定義

數據類型之間的轉換

  1. js的常見數據類型

顯示轉換

Number() 轉換成數字類型

parseInt() 轉換成整型

parseFloat() 轉換成浮點數

String() 轉換成字符串

toString() 轉換成字符串

Boolean() 轉換成布爾模型

  1. 隱式轉換

操作時轉換,

數字和字符串拼接轉換成字符串

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        <script type="text/javascript">
            var a='122'
            var b='abc'
            //強制類型轉換(顯示轉換)
            console.log(a,"類型:"+typeof(a))
            console.log(a,"用number進行類型轉換後的類型:"+typeof(Number(a)))
            //用number轉換一個不是字符串的類型,但內容不是數字,轉換後會生成一個NaN類型,是Not a  Number的縮寫。
            console.log(b,"類型;"+typeof(b))
            console.log(b,Number(b),"用number進行類型轉換後的類型:"+typeof(Number(b)))
            //浮點型轉換
            var c=3.1415926
            console.log(c,'整形轉換:'+parseInt(c))
            console.log(c,'浮點型轉換:'+parseFloat(c))
            //String和toString()效果一樣。
            var d=123456
            console.log(d,String(d),typeof(String(d)))
            console.log(d,toString(),typeof(d.toString()))
            //Boolean,只有0是false,其他數字都是true
            console.log(d,Boolean(d))
            var m=-1
            console.log(m,Boolean(m))//true
            //隱式轉換
            //數字和數字相加表示求和
            var sum
            sum=1+2
            console.log('sum='+sum)
            //數字和字符串相加表示字符串拼接,這就是隱式轉換。
            sum2=1+'2'
            console.log('sum2='+sum2)
        </script>
    </body>
</html>

js創建複雜數據類型數組和對象

  1. 數組的創建
    • 直接創建和利用構造函數創建

var arr=[]//空數組

var arr1=[3,4,5]//有內容的數組

//利用構造函數創建

var arr1=new Array();//創建空數組

var arr2=new Array(10);//創建一個長度爲10的數組

var arr3=new Array(5,4,3,2,1);//創建數組並初始化。

  1. 對象創建

var obj={}//創建空對象

var obj={a:1,b:2}//創建有內容的對象。

//利用構造函數創建

var obj=new Object()

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        <script type="text/javascript">
            //直接創建數組
            var arr=[]
            var arr1=[1,2,3,4,5,6]
            //構造函數創建數組
            var arr2=new Array(1,2,4)
            console.log(arr1.length)
            console.log(arr2)
            //對象直接創建
            var obj={}
            var obj2={a:1,b:2}
            //利用構造函數創建
            var obj3=new Object()
            obj3={c:5,d:6}
            obj3.m=6
            obj3.e="123"
            console.log(obj2)
            console.log(obj3)
        </script>
    </body>
</html>
發佈了216 篇原創文章 · 獲贊 202 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章