国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

js入門筆記整理

BigNerdCoding / 2249人閱讀

摘要:十進制最基本的字面量格式八進制第一位必須是。如八進制的十六進制前兩位必須是。如十六進制八進制十進制由于函數在處理八進制時與存在分歧,會忽略數字前面的值。通常與方法的返回值相同下一篇入門筆記整理二操作符關注作者吧

下一篇:js入門筆記整理(二)——操作符

給入門的同學整理的筆記,不對的地方歡迎指出~

javascript的組成

首先需要明白的是,一個完整的javascript實現應該由下列三個不同的部分組成

核心(ECMAScript,ECMAScript是一種語言的標準)

文檔對象模型(DOM)

瀏覽器對象模型 (BOM)

語法

區分大小寫

標識符

注釋

嚴格模式

語句

區分大小寫
ECMAScript中的一切都區分大小寫。如test和Test分別代表不同的變量

標識符
所謂標識符,就是指變量、函數、屬性的名字,或者函數的參數。命名規則如下:

第一個字符必須是一個字母、下劃線(_)或一個美元符號($)。注意數字不能當首字母

其它字符可以是字母、下劃線、美元符($)或者數字。
按照慣例,ECMAScript使用駝峰大小寫格式,也就是第一個字母小寫,剩下每個單詞的首字母大寫。如:doSomething、myBook

注釋

單行注釋以兩個斜杠開頭

 //單行注釋 

塊級注釋以一個斜杠和一個星號(/)開頭,以一個星號和一個斜杠(/結尾)

/*
*這是一個多行
*塊級注釋
*/

嚴格模式
首先要理解,在嚴格模式下,ECMAScript3標準中的一些不確定行為將得到處理,而且對某些不安全的操作也會拋出錯誤。

要在整個腳本中使用嚴格模式,可以在頂部添加

"use strict"

這是一條編譯指令,用于告訴支持的javascript引擎切換到嚴格模式

在指定函數內部使用嚴格模式

function fun () {
    "ustrict";
    //函數體

支持嚴格模式的瀏覽器包括:IE10+、Firfox 4+、 Safari5.1+、Opera和Chrome

語句
ECMAScript中的語句以一個分號(;)結尾;如果省略分號,則由解析器確定語句的結尾。

var count = a + b   //即使沒有分號也是有效的。——不推薦
var count = a + b;  //有效的語句——推薦。因為加上分號可以避免很多錯誤,甚至提高性能

關鍵字和保留字
需要特別注意的就是關鍵字和保留字不能當作標識符使用,即變量、函數等的命名不能和關鍵字保留字一樣。
如: var for;這是錯誤的,因為for是ECMAScript 5的關鍵字。

具體的關鍵字和保留字可以自行查閱相關書籍

變量

定義變量要使用var操作符(注意var是一個關鍵字),后跟一個變量名(即標識符)。如:

 var str;

ESCMScript也支持直接初始化,即定義變量的同時就直賦值如:

 var str = "hello word";

ECSMScript的變量是松散類型的,所謂松散類型就是可以保存任何值。因此,在修改變量的值的同時,也可以修改類型。如:

 var str = "hello word";
 str = 100;   //有效,但不推薦

這個列子中,str先是值為"hello word"的字符串,再是值為100的整型。

*還有一點值得注意的是,使用var定義的變量將成為其所在作用域內的局部變量。如:

function fun () {
    var str = 100; //局部作用域
}
fun();
console.log(str); //錯誤

*省略var會創建一個全局變量。如:

function fun () {
    str = 100;  //全局變量
}
fun();
console.log(str);  // 100

我們并不推薦省略var,因為這可能會導致不必要的混亂,使維護困難。在嚴格模式下,給未聲明的變量賦值會拋出錯誤。

用一條語句定義變量,使用逗號隔開,ru:

var str = "hi",
    msg = false,
    val = 100;
數據類型

ESCMScript有6中數據類型:(首字母大寫)

Undefined
Null
Number
Boolean
String
Object

typeof操作符(全部小寫)

"undefined" —— 未定義
"boolean"  ——  布爾值
"string" —— 字符串
"number" —— 數值
"object" —— 對象或null
"function" —— 函數

注意:從技術角度講函數確實不是一種數據類型,它屬于object類型,但可以通過typeof區分函數和其它對象,

undefined類型
即:使用var定義但沒有初始化(也就是沒有賦值)的變量。

初學者要區分與未定義的變量的區別:

var str;
//下面變量未定義
//var msg;

consoel.log(str); //"undefined"
console.log(msg); //報錯

//變量未定義只能執行typeof操作
typeof(str); // "undefined"
typeof(msg); // "undefined"

null類型
從邏輯角度來看,null表示一個空對象指針。

typeof(null); //"object"

其實,undefined的值是派生自null,因此,它們的相得性質總是返回 true。如:

console.log(undefined == null); //true

但是注意他們不恒等

console.log(undefined === null); //false

boolean類型
該類型只有兩個值:true和false

各數據類型和boolean的轉換:

這些轉換規則對理解流控制控制語句(如if語句)自動執行Boolean轉換非常重要。如:

var msg = "not null";
if (msg) {
    console.log("msg轉換值是true");
}

Number類型

ESCMScript中使用Number類型表示整數和浮點數。

十進制:最基本的字面量格式
八進制:第一位必須是0。如:

070  //八進制的56

十六進制:前兩位必須是0x。如:

oxA  //十六進制的10

NaN
NaN,是一個特殊的數值,表示一個本要返回數值的操作數未返回數值的情況(這樣就不會拋出錯誤)。如:

function fn1 () {
    return 10; //有數值返回
}
var val1 = fn1();
console.log(val1); //10 


function fn2 () {
    return 10; //沒有數值返回
}
var val2 = fn2();
console.log(val2); //NaN    

任何涉及到nan的操作都返回NaN。如:

Nan / 10 = NaN;

NaN與任何值都不相等,包括NaN本身。如:

console.log(NaN == NaN);  //false
console.log(NaN === NaN);  //false

在ESCMScript中,任何數值除以0,都返回NaN。

如: 300 / 0 = NaN;

數值轉換

NUmber()函數:——可用于任何類型
(1)如果是Booleam值,true和false值分別被轉換成1和0
(2)如果是數值,只是簡單傳入和返回
(3)如果是null,返回0
(4)如果是undefined,返回NaN
(5)如果是字符串
a.空字符串返回0
b.如果只包含數字(包括正負號),轉換為十進制數值。如:

 "123"轉換為123
 "012"轉換為12(前導的0忽略)

c.如果包含有效的浮點格式,轉換為相應的浮點數值(同樣忽略前導的0)
d.如果包含有效的十六進制,如"0xA",轉換為相應的十進制
e.否則轉換為NaN
(6)如果是對象,則調用對象的valueof方法,按上述規則轉換。如果返回的值為NaN,在調用對象的tostring方法,按照上述規則轉換

由于Numbera()函數在轉換字符串時比較復雜切不夠合理,因此在處理整數的時候更常用的是parseInt()函數。

parseInt()函數—— 將數值轉換為整數

(1)如果第一個字符(空格除外)不是數字或負號,返回NaN
(2)如果第一個字符(空格除外)是數字或負號,函數將解析第二個字符,直至解析完后續字符或者遇到了一個非數字字符。如:

var num1 = parseInt("123ad");  //123
var num2 = parseInt(""); //NaN
var num3 = parseInt("0xA"); //10(十六進制)
var num4 =  parseInt(13.3);  //13
var num5 = parseInt("070");  //56(八進制)
var num6 = parseInt("20"); //20(十進制)

由于parseInt()函數在處理八進制時ESCMScript3與ESCMScript5存在分歧,ESCMScript5會忽略數字前面的值。所以為了避免不必要的錯誤,建議總是為函數提供第二個基數(即指定多少進制)。如:

parseInt("020", 10);   //十進制
parseInt("010", 8);   //八進制
parseInt("7", 10);    //十進制
parseInt("7", 2);     //二進制

parseFloat()函數——將數值轉換為浮點數值
(1)之解析十進制
(2)始終忽略前面的0
(3)只有第一個小數點有效

var num1 = parseFloat("123ad");  //123
var num2 = parseFloat(""); //NaN
var num3 = parseFloat("0xA"); //0
var num4 = parseFloat(13.3);  //13.3
var num5 = parseInt("070");  //70
var num6 = parseInt("20.23e3"); //20.23000

String類型
字符串可以使用雙引號("")或單引號("")表示

類型轉換

toString()方法

(1)數值、布爾值、對象和字符串值都有toString()方法
(2)null、undefined沒有toString()方法
(3)方法的第二個參數可以傳入基數

var num = 10;
num.toString(num); //"10"
num.toString(num, 2); //"1010"
num.toString(num, 8); //"12"
num.toString(num, 10); //"10"
num.toString(num, 16); //"a"

String()函數

(1) 如果值有toString()方法則調用toString()方法
(2) 如果值是null,則返回"null"
(3) 如果值是undefined,則返回"undefined"

Object類型
Object類型有下列屬性和方法:

constructor:對象的構造函數

hansOwnProperty(propertyName):檢查給定屬性在當前對象(不是實例原型)中是否存在

isPropertypeOf(object):檢查傳入的對象是否是對象的原型

propertyIsEnumerable(propertyName):檢查給定屬性是否能用for-in枚舉

toLocaleSting():返回對象的字符串

toSting():轉換成字符串

返回對象的字符串、數值、布爾值。通常與toString()方法的返回值相同

下一篇:js入門筆記整理(二)——操作符

關注作者吧~

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/84565.html

相關文章

  • js入門筆記整理(二)——操作符

    摘要:上一篇入門筆記整理一元操作符遞增遞增分為前置遞增和后置遞增前置型兩個加號放在前面這個操作其實就是給加,上面的列子等效于前置遞增其實可以分為兩步操作,其加運算高于賦值號運算,如等效于先運行加運算為再運行賦值運算后置型兩個加號放在后面這個操作其 上一篇:js入門筆記整理 一元操作符 遞增 遞增分為前置遞增和后置遞增前置型——兩個加號(++)放在前面 var num = 1; ++n...

    JasonZhang 評論0 收藏0
  • React 入門學習筆記整理目錄

    摘要:入門學習筆記整理一搭建環境入門學習筆記整理二簡介與語法入門學習筆記整理三組件入門學習筆記整理四事件入門學習筆記整理五入門學習筆記整理六組件通信入門學習筆記整理七生命周期入門學習筆記整理八入門學習筆記整理九路由React 入門學習筆記整理(一)——搭建環境 React 入門學習筆記整理(二)—— JSX簡介與語法 React 入門學習筆記整理(三)—— 組件 React 入門學習筆記整理(...

    daryl 評論0 收藏0
  • 首次公開,整理12年積累的博客收藏夾,零距離展示《收藏夾吃灰》系列博客

    摘要:時間永遠都過得那么快,一晃從年注冊,到現在已經過去了年那些被我藏在收藏夾吃灰的文章,已經太多了,是時候把他們整理一下了。那是因為收藏夾太亂,橡皮擦給設置私密了,不收拾不好看呀。 ...

    Harriet666 評論0 收藏0
  • AI開發書籍分享

    摘要:編程書籍的整理和收集最近一直在學習深度學習和機器學習的東西,發現深入地去學習就需要不斷的去提高自己算法和高數的能力然后也找了很多的書和文章,隨著不斷的學習,也整理了下自己的學習筆記準備分享出來給大家后續的文章和總結會繼續分享,先分享一部分的 編程書籍的整理和收集 最近一直在學習deep learning深度學習和機器學習的東西,發現深入地去學習就需要不斷的去提高自己算法和高數的能力然后...

    huayeluoliuhen 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<