運算符
(1) 其他數據類型轉換爲Boolean;
string->Boolean;
var a="";
a="hello"
a=Boolean(a);空串爲false其餘的爲true。
Number->Boolean
a=123;
a=-123;
a=0;
a=NaN;
除了0和NaN其餘的都是true。
a=null;a=undefined; ——》false
object->Boolean爲true。
(2)基本運算符 + - * / %
1:+號運算符,在用於字符串相加時結果爲一個字符串拼接;
var a="123";
a=a+"456"=”123456”;
我們可以利用這個隱式的方法將其他類型轉換爲字符串類型。
a=123+”” +個空串可以把a轉換爲字符串“123”.
我們可以利用+將其他類型轉換爲String類型,- / * 將其他類型轉換成Number類型.
2:單目運算符 + -表示正好,負號,typeof
a=+"123" 我們也可以通過+運算符將其他運算符轉換爲Number類型的運算符。
3:自增++ 自減運算符 –
a++ ,++a ,--a ,a--;a=20
a=a++;//表示的是自增前的值 a=20;
a=++a;//++a表示自增後的值 a=21;
--同理 –-a 表示的自減後的值,a—表示的是自減錢的值。
4:邏輯運算符
!&& || 與或非運算符
!運算符將其他類型轉換爲Boolean類型在取反 true->falsefalse->true
&& and 運算符 必須都爲真結果爲真否則爲否
|| or 運算符 一個真就爲真,兩個假都爲假。
b=123&&456=456 兩個都爲真則返回第二個值因爲計算機運算的規則
true&&true 因爲 需要判斷第二個所以返回第二個值。
False&&true 不需要判斷第二個直接返回第一個值。//JS中可以,C++,JAVA不可以,這樣運算。
5:賦值運算符(= ,+= ,-=,*=,/= ,%=)
a=a+10等價於a+=10;其餘的類似。
6:關係運算符
大於,小於,等於> < ==;
(1) console.log(NaN==NaN);NaN類型與任何值進行比較結果都爲false。
我們可以通過isNaN()函數判斷值是否爲NaN.
(2) console.log("abc">"b"); 結果爲false 字符串類型進行比較會一個位一個進行比較,比較的是字符串編碼。”a”<”b”編碼。
(3)console.log("123">1);字符串類型於Number類型比較會轉換成Number在比較.
(4)undefined==null 結果爲真。0==null結果爲假,沒有轉換成Number類型進行比較。
7:條件運算符(三元運算符)
a=10>20?a:b;
a=a>b?(a>c?a:b):(b>c?b:c);表示求三個數的最大值。
8:對象:用構造函數創建一個對象 var a=new Object;
8:
8:對象:用構造函數創建一個對象var a=new Object;
(1)var a=new Object;//創建一個對象
a.name="123";//給對象的屬性賦值
deletea.name;//刪除對象的屬性
console.log(a.name);
var a=new Object;
a["name"]="張三"//屬性名可以寫在[“”]中,裏面必須是字符串。
console.log(a["name"]);
a["name"]="張三"
varn="name";//可以更加靈活的改變。
console.log(a[n]);
(2)
var a=2,b=1;
a=b;
b++;
console.log("a的值爲"+a);
console.log("b的值爲"+b);
由於a,b變量的值儲存在棧內存中的,他們各自的存放的地址不同,所以他們是相互獨立的,併發生改變與a值無關。
var a=new Object;
var b=new Object;
a.name="張三";
b.name="李四";
a=b;
console.log(a);
console.log(b);
a.name="小米";
console.log(a);
console.log(b);
對象賦值則他們屬於同一個地址,對象空間開闢存放在堆內存中,a,b,對象在棧內存中存放的是對象在堆內存的地址,我們將b對象賦給a,他們擁有的空間是一樣的所以,其中一個值得改變就會影響另一個值得改變。
var obj={
name:"豬八戒",
age:"1000000",
sex:"男",
hobby:"女"
};
console.log(obj);
obj常量的初始化類似於數組a[5]={1,2,3,4,5};
(2) 函數。函數用來放置代碼塊。需要運用的時候直接調用。
//函數的初始化
varfun2=function()
{
console.log("123456");
}
fun2() ;//調用這個函數
//function fun2(a,b)
{
console.log("這是第一個函數");
}
fun2(1,2);
調用函數時,解析器不會檢查實參的類型和數量,(可能插入非法的數值,需要檢查)多餘的實參不會被賦值。