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