1. 變量:聲明(var) 賦值(=)
取值(使用變量名等效於使用變量中的值)
***聲明提前:程序開始執行前,
將所有var聲明的變量提前到開始位置
賦值留在原地
console.log(a); //undefined
var a=100;
console.log(a); //100
***使用變量報錯:嘗試從*未聲明*的變量中*取值*
***給未聲明的變量賦值,*不會報錯*!會自動創建同名變量
2. 數據類型:2大類
原始類型:值保存在變量本地的數據類型
5種:Number String Boolean undefined null
Number:8bytes 舍入誤差-->四舍五入
String:每個英文字符 1byte
每個漢字字符 2bytes
一旦創建內容不可改變
Boolean: true false
引用類型:值不保存在變量本地的數據類型
js中的變量 vs 數據庫
內存中 硬盤上的文件
臨時的 持久的
客戶端 服務器端只存一份
正課:
1. ***數據類型轉換
2. ***運算符和表達式
1. ***數據類型轉換:
***js是弱類型編程語言:3方面:
1. 聲明變量時,不用規定變量存儲的數據類型
2. 賦值時,動態決定變量的數據類型
同一個變量,先后可保存不同類型的數據
3. 運算時,js會根據需要,動態轉換數據的類型
2大類:
1. 隱式轉換:無需程序員干預,js自動完成的類型轉換
僅討論+運算中的隱式轉換:2句
算數計算中,一切類型都隱式轉為number類型,再計算
比如:"2"-->2 true/false-->1/0
特例:+運算中,只要有一方是字符串,兩數據都轉為字符串,且+運算變為字符串拼接!
表達式:由數據,變量和運算符組成的一個公式
每個表達式默認都從左向右,兩兩計算
*每個表達式有且僅有一個運算結果!*
NaN:Not a Number-->說明運算中包含了無法轉為數字的值
不是數字 的 數字
NaN和任何數據做計算,永遠返回NaN
typeof(x): 專門用於判斷x的數據類型,返回數據類型名
typeof(NaN): number
隱式轉換,僅影響表達式的運算結果,不影響變量中存儲的實際值。
2. 強制轉換:程序員通過主動調用專門函數,執行轉換
1. 任意類型 to String: 2種:
var str=x.toString();
js中,一切數據都有toString方法
var str=String(x);-->隱式轉換
何時使用:程序在需要時,自動調用
***2. 任意類型 to Number: 2種:
任意類型 to Number: var n=Number(x);-->隱式
String to Number: 2種:
var n=parseInt(str);
原理:從str開始位置逐個讀取每個字符
直到碰到第一個不是數字的字符時,停止讀取
自動忽略開頭碰到的空格
比如:var width="12px";
width+"2px"-->"12px2px"
Number(width)+Number("2px")-->NaN
parseInt(width)+parseInt("2px")
parseInt("12px")+parseInt("2px")
12 2 -->14
width=14+"px";
var money="$400"; NaN
"34.56"; 34
var n=parseFloat(str);
原理和parseInt完全一致!
但是,parseFloat,只認第一個小數點
比如:parseFloat("34.56"); 34.56
parseFloat("34.56.78"); 34.56
Number(x) vs parseInt(str)
比如:Number("12px")-->NaN
parseInt("12px")-->12
string to Number-->parseInt
Number(true)-->1
parseInt(String(true))
parseInt("true")-->NaN
x to Number-->Number()
3. 任意類型-->Boolean: 1種:
var bool=Boolean(x);-->隱式轉換
"" NaN undefined null 0 --> false
其余-->true
課堂練習:
輸入框:var input=[window.]prompt("輸入提示");
[window.]alert();
***凡是從頁面上獲得一切數據,都是字符串類型
2. ***運算符和表達式:
程序:讓計算機按照人的想法去執行任務
運算符:程序中模擬人的思維運算或判斷的符號
運算符:算數運算符:+ - * / % ++ --
%運算:取余數 6789%100-->89
被除數/除數,不取商,而是取除不盡的余數部分
何時使用:2大用途:
1. 判斷奇偶數:n%2-->1 奇數 否則 偶數
2. 限制一個運算的結果,不超過某個最大值(除數)