js數據類型(學習筆記) ----九層之臺,起於累土;javascript
// 數據類型之function
// 函數 具有必定功能的方法(你能夠經過函數封裝一些代碼執行必定邏輯)
// 如何定義的 var 變量名 = 值
// function 函數名() { // 函數體
// // 執行的邏輯代碼
// }
// 函數定義
function fe() {
var message = 'hello function'
alert(message)
}
// 函數的執行(就是執行函數體裏的代碼)
// 函數名()
// fe()
// 函數能夠執行屢次(在你須要它的時候就可調用它)
console.log('外面')
// ƒ fe() {
// console.log(123)
// }
// typeof fe // "function"
// 定義了一個4跟2 求和的函數
function add() {
console.log(4 + 2)
}
function mul() {
console.log(4 * 2)
}
mul()
// alert()
// console.log()
// document.getElementById()
// document.getElementsByTagName()
// document.getElementsByClassName()
// console.log(1)
// console.log(1)
// console.log(1)
// console.log(1)
// console.log(1)
// for (var i = 0; i < 5; i++) {
// console.log(1)
// }
// 一次定義 屢次複用
function loop() {
for (var i = 0; i < 5; i++) {
console.log(1)
}
}
複製代碼
// 參數
// 形參變量用來接收函數執行的時候 傳遞進來的值(實參跟函數裏的形參變量一一對應的)
// 對於形參變量的值具體是什麼 就看你讓這個函數執行的時候 傳遞實參是什麼
// function add(a, b, c) { // 形參(函數裏的變量)
// // console.log(10 + 10)
// console.log(a, b, c)
// }
var num = 2019 // 全局變量
// 函數裏var(定義的變量)和形參變量都是函數裏的變量 只能在這個函數裏用
// function fn(num) {
// var abc = '123' // 函數裏面的變量(私有變量)
// console.log(abc)
// }
// 全局做用域(正式課第一週)
// console.log(123)
// add(10, 20) // 傳了兩個參數(值)(實參)
// function add2() {
// console.log(20 + 20)
// }
// function add3() {
// console.log(30 + 30)
// }
// function add4() {
// console.log(40 + 40)
// }
// 定義一個add函數 可以讓任意兩數求和
function sum(a, b) {
console.log(a + b)
}
sum(10, 20)
複製代碼
// arguments 實參集合 (類數組)
// 如何獲得函數傳遞進來參數
// 1.經過形參接收
// 2.arguments 實參集合來獲取
// function add(a, b) {
// console.log('arg0', arguments[0]) // 10
// console.log('arg1', arguments[1]) // 20
// console.log('a', a)
// console.log('b', b)
// console.log(typeof arguments) // "object"
// }
// add(10, 20)
// 正常狀況下(非嚴格模式下)
// 形參和arguments是有同步映射關係的(一個參數變了另個集合裏參數也跟着變)
function fn(a, b, c) {
console.log(arguments)
arguments[1] = 200
console.log(arguments)
console.log(b)
// a = 2018
// console.log(a)
// console.log(arguments)
// console.log(arguments)
// console.log(a, b, c)
}
fn(1, 2, 3)
// 函數執行時 你傳遞進來多少個實參 arguments裏就會有多少個參數
// 求和做業 傳多少個數字實參 就給我累加多少 把結果return出來
function add() {
for (var i = 0; i < arguments.length; i++) {
console.log(i, arguments[i])
}
// return
}
add(1, 2, 3, 4)
// function sum() {
// // var total = 0;
// var total = null;
// for (var i = 0; i < arguments.length; i++) {
// total += arguments[i]; // total = total + arguments[i]
// console.log(total) // 1 3 6
// }
// return total;
// }
// console.log(sum(1, 2, 3));
// 只有是number類型纔會進行累加操做
// function sum() {
// var total = null;
// for (var i = 0; i < arguments.length; i++) {
// // 若是集合中這個參數是數字 再進行累加
// if (typeof arguments[i] === 'number') { // 'string'
// total += arguments[i]; // 累加操做
// }
// }
// return total;
// }
// var a = sum(1, 2, 3, '10', undefined)
// 任意數求和
// function sum() {
// var total = null;
// for (var i = 0; i < arguments.length; i++) {
// var num = arguments[i]
// if (typeof num === 'number' && !isNaN(num)) {
// total += num; // total = total + num
// }
// }
// return total;
// }
// var a = sum(1, 2, 'abc', NaN, 10)
// console.log(a);
複製代碼
// 若是當前參數能夠轉換成數字 我就累加(容許純數字字符串)
function sum() {
var total = null;
for (var i = 0; i < arguments.length; i++) {
console.log('轉換前1', arguments[i])
// num變量用來存儲 轉換後的值
var num = Number(arguments[i])
console.log('轉換後2', num)
if (!isNaN(num)) {
total += num;
}
}
return total;
}
var a = sum(1, 2, 10, '123', '10px')
console.log(a)
function sum() {
var total = null;
for (var i = 0; i < arguments.length; i++) {
// var num = Number(arguments[i]) // '123'
// var num = parseInt(arguments[i]) // '10px'
var num = parseFloat(arguments[i]) // '10.123px'
if (!isNaN(num)) {
total += num;
}
}
return total;
}
var a = sum(1, 2, 10, '123', '10.50px')
console.log(a)
複製代碼
// 函數的返回值
// function add(a, b) {
// // console.log(a + b)
// a + b
// return 'hello' // 返回值 經過return關鍵字 來指定 這個函數執行後返回到外面的結果
// }
// // 函數() 表明是函數執行的意思 同時函數名() 總體 表明函數返回的結果
// // console.log(add(10, 20))
// // console.log(add(10, 20))
// console.log(add())
// 定義部分
// function add(a, b) {
// var total = a + b
// // return total // return 後面跟着的是 一值
// // return a + b
// // return {id: 1}
// }
// console.log(add(10, 20))
// 在函數外面定義一個變量sum 接收add這個函數執行後返回值(返回結果)
// var sum = add(10, 20)
// console.log(sum)
// console.log(sum + 100)
// var sum1 = add(100, 100)
// console.log(sum1)
// add 函數名 表明是這個函數自己(也就說明add這個變量存儲的是這個函數體)
// console.log(add) 定義部分
// 函數名() 讓函數執行 同時表明函數執行後的返回值
// add()
// console.log(add())
// function fn(a, b) {
// return a + b // return 整個函數執行就結束了 而且後面代碼都不會再執行了
// console.log(100)
// }
// console.log(fn(10, 10))
// function fn(a, b) {
// console.log(100)
// return a + b // return 整個函數執行就結束了 而且後面代碼都不會再執行了
// }
// console.log(fn(10, 10))
function fn(a, b) {
var total = a + b
if (total > 10) {
return '這個值是大於10'
} else {
return '這個是10之內加法'
}
console.log('我是後面的代碼')
}
// console.log(fn(10, 10))
// console.log(fn(1, 2))
function loop(n) {
for (var i = 0; i < n; i++) {
console.log(i) // 5
if (i === 5) {
return '當前i=5' // 整個函數執行結束 而且循環也結束了
}
console.log('我是循環體裏的')
}
}
console.log(loop(10))
複製代碼
// function fn() { // 函數定義部分
// console.log(123)
// }
// console.log(fn) // 函數自己
// 代碼執行到這一行是 纔將fn賦值爲函數
// 函數表達式 只能在函數定義後 使用
// var fn = function (a) {
// console.log(a)
// // console.log(arguments)
// }
// console.log(fn)
// fn(100)
// 匿名函數 沒有名字的函數
// 自執行函數
// (function(a) { // 聲明形參
// console.log('自執行', a)
// console.log('自執行', arguments)
// })(100) // 傳實參
// n 是用來接收 自執行函數執行後的返回值 並非把這個函數賦值給變量n
// var n = (function () {
// return 100
// })()
// console.log(n)
// 自執行函數其餘寫法
// +function() {
// }()
// ~function() {
// }()
// !function() {
// }()
var bar = 100;
// 再前面加個分號
;(function() {
})()
//
// !至關於返回值取反 輸出true
// !function() {
// console.log(12312)
// }()
複製代碼
----------------------------------------------------------------------------------------------------------------
參考文章&&強烈推薦:布羅利java