一、變數
(變數可以用它儲存任何型別的資料。)
1.var關鍵字
var msg; //定義乙個名為msg的變數
var msg='hi'; // msg被定義為儲存'hi'的變數
// var 宣告提公升
function foo()
foo(); //10
//「提公升」,就是變數會自動提公升到函式作用域的頂部
2.let 宣告
let和var的區別:
1)let 宣告的範圍是塊作用域,var宣告的範圍是函式作用域
if(true)
console.log(age);//10
if(true)
console.log(age);// referenceerror: age is not defined
2)var、let 混用,宣告相同的變數名會報錯
var text; //syntaxerror
let text; //syntaxerror,冗餘宣告報錯
3)let宣告的變數不會在作用域中被提公升
console.log(age);
let age=10;//referenceerror,沒有定義
4)let在全域性作用域中宣告的變數不會成為window物件的屬性()
var age=10;
console.log(window.age);//10
let name='aha';
console.log(window.name);//undefined
5)在for迴圈中,使用var會使迴圈定義的迭代變數滲透到迴圈體外
for(var i=0;i<4;i++)
console.log(i);//5
for(let i=0;i<4;i++)
console.log(i);//referenceerror,未定義
3.const宣告
const宣告和let大體相同,區別:
const car ={};
car.color='red'; //宣告的變數是乙個物件,可以修改這個物件的內部屬性
for(const i=0;i<10;i++){} //typeerror,不能宣告迭代變數
二、資料型別
1.「undefined」型別表示未定義 值:undefined;
2.null型別 空 值:null; null是表示乙個空物件指標,這也是typeof操作符檢測 null 值時會返回 object 的原因。
3.boolean型別 兩個字面量值:true,false
值區分大小寫,true,false為識別符號。
4.number型別 ,表示資料的整數和浮點數
特殊值:nan isnan()函式,接受引數判斷這個引數是否「不是數值」
數值轉換:parseint()函式,字串是否包含數值模式,識別不同的整數格式。
let num1=parseint(""); //nan
let num2=parseint("125");//125
let num3=parseint("oxa");//十六進製制
5.string()型別
特點:字串是不可變的,要修改某個變數中的字串,必須銷毀原始的字串。
tostring()方法轉換為字串。其中,null和undefined值沒有tostring()方法。
6.symbol型別
符號是原始值,用途:確保物件屬性使用唯一標識。
symbol()函式,
let sym=symbol('foo');
console.log(sym); //symbol(foo),傳入字串引數
7.object型別
陣列與功能的集合。
let o=new object();//建立物件
三、棧和堆與基本資料型別和引用資料型別的關係
棧(heap)和堆(stack)、引用型別
棧:先進後出;動態分配的空間。
堆:佇列優先,先進先出;由作業系統自動分配釋放 ,存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。
引用型別:即存放在堆(heap)記憶體中的物件,變數實際儲存的是乙個指標,這個指標指向另乙個位置。
變數 資料型別
記錄資料 每一次 的值可能會變,用變數抽象代指 數學變數 設x 求 y 3 x 10 1.變數的宣告及初始化 型別關鍵字 變數名 初始值 變數名 純字母 組合 非關鍵字 字母1.數字不能開頭 long x1 3 int x2 3 short x3 3 byte x4 127 x4 5 x4 x1 變...
變數 資料型別
c語言 是一門強型別 資料型別之分 面向過程的語言 注 是以模組 函式 過程 單位,執行的單位 程式 演算法 資料 c語言的資料 一,原始檔 存放高階語言的檔案 字尾名 c 二,程式的入口函式 程式開始的地方 主函式 三,整型,浮點型,字元型 常量 變數 1,整型常量100 0100 0x100 2...
變數 資料型別
1.值型別 var a 100 var b a a 200 console.log b 2.引用型別 物件 陣列 函式 特點 可以無限制拓展屬性 var a var b a b.age 21 console.log a.age 3.typeof 運算子 只能區別函式和值型別,不能區分引用型別 typ...