從學習JavaScript到如今已經有半個月的時間了,從簡單的基礎知識到如今的基礎邏輯思惟練習,知識點也在逐步的增長。html
學習的難度也在逐步的加深。剛開始的我還能接受這些,但是隨着知識點的增長,感受本身學習起來愈來愈吃力,好比最近學函數
習的函數,在C語言階段,個人函數就學的不是很好,應該算本身的一個難點,現在又接觸到函數,仍是有點兒吃力,但願自學習
己在後面的學習階段可以有所改變。總的學習知識點以下:this
第一階段:接觸基礎知識spa
一、JS輸出方式:htm
控制檯輸出:ip
console.log("xxx");作用域
頁面輸出:文檔
document.write(「xxx」);字符串
彈出輸出:
alert ("xxx");
prompt ("xxx");
二、變量:
變量是儲存數據信息的內容。
變量是被認爲是有名字的容器。使用變量名爲值命名;
必須先聲明一個變量,變量才能被使用;
變量是弱類型,也被稱爲鬆散型;指能夠用來保存任何類型的數據;
三、變量提高:
a、先解析,獲取全部被生命的變量,以後在一行一行運行。就會形成所
有的變量聲明提高到代碼頭部;
b、只對var命名的變量有效;
第二階段:
一、數據類型:
JavaScript語言中每個值,都屬於某一種數據類型。
在ES5中數據類型分爲六種:五種原始類型,一種引用數據類型;
二、原始類型:
a、number(數字);
b、boolean (布爾);
c、string (字符串);
d、null ;用於表示某個變量值爲空。
e、undefined;用來肯定一個已經建立可是沒有初始值的變量。
三、數據類型轉換:
a、parseInt()函數:轉換成整數;
b、parseFloat ()函數:解析一個字符串,返回一個浮點數;轉換成小數
c、Number :能夠將任意類型的值轉換成數字;
四、強制轉換成字符串:
String()函數:能夠將任意類型轉換成字符串;
五、強制轉換成布爾值:
Boolean ()函數:能夠將任意類型轉換成布爾值;
除了如下5個結果爲
false,其餘得值全爲true:
undefined、null、0、NaN、,,,
第三階段:運算符
一、算術運算符:
+ - * / % ++ --
++:自動運算符,整數值逐次加1;
--:自動運算符,整數值逐次減1;
注意:
自增運算符:
前置型(++a):先執行加操做,再應用變量值。
後置型(a++):先引用變量值,再進行自加操做。
二、比較運算符:
> >= < <= == != === !===
三、邏輯運算符:
&& || !
&&:一假必假
||:一真必真
四、賦值運算符:
= += -= *= /= %=
五、字符串鏈接運算符:
+
六、三目運算符/條件/三元
? :
七、特殊運算符:
typeof instanceof
第四階段:流程控制語句
一、三種執行語句:
a、順序執行
b、選擇執行
c、循環語句
二、條件語句:
經過判斷獲得的結果,來決定是執行仍是跳過指定的代碼。
三、if語句:
例:
var a = 3;
if (a>5){
console.log(a);
}
console.log("xxxx");
四、if else語句:
例:
var b = 5;
if (b>10) {
console.log("b大於10");
}
else {
console.log("b小於10");
}
五、else if語句:
例:
var sum = 98;
if (sum>90){
console.log("優");
}
else if(sum>60 && sum<90){
console.log("良");
}
else {
console.log("差");
}
六、swich case 語句:
例:
var a = 4;
switch(a){
case 1:
console.log("111");
break; //終止
case 2:
console.log("222");
break;
case 3:
console.log("333");
break;
default: //當值未聲明時,執行default
console.log("4444");
}
七、循環語句:
a、while 循環:
例:
var a = 1;
while (a<5){ 先判斷
console.log(a); 再執行
a++;
}
輸出結果:一、二、三、4;
b、do while循環:
例:
var num =1;
do{
console.log(num); 先執行
num++;
}while(num < 5); 再判斷
輸出結果:一、二、三、4;
while與do while的區別:
while:先執行,再判斷;
do while:先判斷,在執行;
for 語句:
例:
一、初始化表達式:初始化一個計數器,再循環開始前記錄初始狀態。
二、條件判斷表達式:判斷給
三、循環操做表達式:
for (var i = 0;i < 10; i++) {
console.log(i);
}
for (表達式1;表達式2;表達式3){
表達式4(大括號裏面全部代碼)
}
執行順序:表達式1》表達式2》表達式4》表達式3》表達式1.....
for 嵌套語句:
例:
for (var i=0;i<5;i++){
for(var j=0;j<3;j++){
console.log(j);
}
}
break:終止當前整個循環;
continue:終止當前這一輪循環;
第五階段:函數:
一、定義;
例:
function fn(){
console.log("this is a function");
}
二、定義方
. 函數聲明方式:
//函數聲明
function fn(){
console.log("1111");
}
. 字面量方式:不存在函數提高;
//字面量 (函數表達式)
var fn = function(){
console.log("1111");
}
函數調用:fn ();
函數名+()一是點用函數;二是接受返回的值;
三、函數參數:
a、形參:定義函數時使用的參數;
b、實參:調用函數時使用的參數;
四、return語句:
例:
function fn (msg){
return "hello" + msg;
}
var fun = fn("world");
console.log(fun);
注意: return默認狀況下返回的是undefined。
五、全局做用域與局部做用域:
函數做用域(局部做用域)
變量做用域:指的是變量可被訪問的範圍。分爲全局做用域和局部做用域。
*全局做用域:一個html文檔只有一個全局做用域,,任何位置都能訪問
*局部做用域:也叫函數做用域,指的就是在函數內部的區域。
聲明在全局做用域的變量就叫作全局變量,聲明在局部做用域的變量叫作局部變量。
function fn(){
var str = "abc";
console.log(str);、/*寫在此處才正確*/
}
fn();
console.log(str);/*寫在此處會出現錯誤*/
六、函數提高變量:
七、匿名函數:
例:
function(){
}
當即執行函數(自調函數);
例:調用1
(function (a,b){
console.log(a+b)
}) (1,2);
例:調用2"
(function(a,b){
console.log(a+b)
} (2,4));
ES6:
函數參數的默認值 (函數的默認參數)
例:
function fn(a,b){
if(a === undefined){
a=1;
}
if(b === undefined){
b=1;
}
return a+b;
}
console.log(fn(x,x));
function fn(a=1,b=2){
return a+b;
}
console.log(fn(x,x));
八、箭頭「」函數:
例:
a => a * a;
a => {
if(){
}
else{
}
}
(a) =>{
console.log(a);
return;
}
var fn = (a) =>{
console.log(a);
return;
}
fn(1);
注意:當箭頭函數沒有參數或者有多個參數
以上是最近的學習知識點,在最近幾天的學習中,感受很混亂,常常理不清思路,感受在上課期間也不在狀態,從而在後面函數的練習中出現困難,但願後面本身能克服,改變現狀。