1. 程式人生 > >js學習——基礎知識

js學習——基礎知識

data undefined () defined ogl 即使 所有 全局 fine

JavaScript

//這是註釋
a = 1;//簡單賦值語句

數據類型

js有動態類型,也就是相同的變量可用作不同類型(python也是)

數字 Number

var x = 5;//只有一種數字類型

var x = 5.0;

var x = 5e5;

var x = 5e-5;

所有數據都以 64 位浮點型數據存儲

字符串 String var x = "5";
布爾 Boolean

var x = true;

var x = false;

數組 Array

var x = new Array();x[0] = 0;

var x = new Array("0", "1");

var x = ["0", "1"]

對象 Object

//對象是屬性和方法的容器

var x = {zero:0,first:1};//name:value

var zero = x.zero;//訪問對象屬性

var first = x["first"];

函數 function

a = function(){}

Null var x = null;//null可用來清空變量
未定義 Undefined

var x;//變量不含值

null和undefined值相同,但類型不同

函數、方法

函數 方法
在對象x中定義函數funcName

function 函數名(var1, var2){

var x = 1;

return x;//返回x

}

var x{

id:1,

funcName:function(){

return id;};};

x.funcName;

x.funcName();

函數中return默認是最後一行,即使沒有分號(return)也會默認結束函數。

變量作用域

局部變量 全局變量

聲明/定義方式

在函數體內定義

var x = 1;

//給未聲明的變量賦值,自動作為全局變量

x = 1;

在函數外聲明的變量

var x = 1;

作用域

只能在函數內被訪問

網頁內都能訪問
生存期 函數運行完成後刪除 頁面關閉後刪除

全局變量都屬於window對象

x = 1;

window.x = 1;

for (var i = 0; i < 10; i++) {
var y = i;
}

//循環外可以訪問i和y

運算符 大部分與C++類似

算法運算符 + - * / ++ -- %
賦值運算符 = += -= *= /= %=
字符串+數字

字符串+數字=字符串

"a"+5="a5"

5+5+"a"="10a"

空文本+數字="數字"(無空格)

" " + 5 = "5"

比較運算符 ==等於 ===絕對等於(值和類型)
!=不等於 !==不絕對等於(值和類型)

< <= > >=

邏輯運算符

&& || !(not)

比較運算式?真結果:假結果

一元運算符+

var y="5";

var x=+y;//利用+可以把變量轉換為數字

條件語句 與C++類似

if...else switch for循環 while循環
if(a>b)
{
}
else if(a>c)
{
}
else
{
}
switch(n)
{
 case 1:
  a = 1;
  break;
 case 2:
  a = 2;
  break;
 default:
  a = 0;
}
for(int i=0; i<len; i++)
{
}
//遍歷對象中的每一個屬性
var data={x:0,y:1};
for(d in data){
}
//遍歷數組中的每一個元素
var data=["a","b"];
for(d in data)
{
}
while(true)
{
}
do
{
}while(true)

break和continue 與C++類似

continue只能用於循環

break;只能用於循環或switch break 標簽引用;可退出任意代碼塊

//list_label對下列語句作標記
list_label:
{
a = 1;
b = 1;
//break 標簽引用 可退出任意代碼塊
break list_label;
c = 1;
}

typeof 獲取變量類型

typeof 1;

typeof NaN;

number

在轉換時,不能轉換成合法數字的都是NaN

typeof "1"; string
typeof true; boolean
typeof [1,2]; object

typeof null;

var x;

typeof x;

object

只聲明未賦值

typeof undefined

typeof x;

undefined

x未聲明過

typeof fcuntion(){}

typeof fcuntion a(){}

function

"1".constructor

constructor屬性可以返回對象的構造函數,

故可通過對象的consructor屬性來判斷它的類型

對Array typeof返回也是object,但用constructor屬性就可以返回Array()

錯誤(異常)

try{
  throw "錯誤信息";//拋出一個自定義錯誤
}
catch(err){
  a = err;//err的值就是 錯誤信息
}

變量提升

1. 函數及變量的聲明會被自動提升到最上面(聲明會自動變成在代碼最上面)

2. 初始化不會自動提升(var x = 5;這個語句的位置不會自動變化)

嚴格模式

該模式下對代碼有一定要求。通過把"user strict"寫在腳本或函數頭部來使用嚴格模式。

JSON: JavaScript Object Notation

一種輕量級的數據交換格式,用於存儲和傳輸數據的格式,通常用於服務端向網頁傳遞數據 。

語法規則

數據為 鍵/值 對。數據由逗號分隔。大括號保存對象。方括號保存數組

3 條網站信息(對象)的數組

{"sites":[ {"name":"Runoob", "url":"www.runoob.com"}, {"name":"Google", "url":"www.google.com"}, {"name":"Taobao", "url":"www.taobao.com"} ]}

javascript:void(0)

javascript:void(0) void計算()中表達式但不返回值。<a href="javascript:void(0)"></a>點擊鏈接時不會有反應。但用在js時void不會產生效果。

href="#"與href="javascript:void(0)"的區別

# 包含了一個位置信息,默認的錨是#top 也就是網頁的上端。

而javascript:void(0), 僅僅表示一個死鏈接。

js學習——基礎知識