Hello JavaScript —— 2 函数
函数
函数定义
定义方式1
function abs(x){ if (x >= 0){ return x; }else{ return -x; } } document.writeln(abs(-2)); 12345678 一旦执行到return代表函数结束,返回结果如果没有执行return 函数执行完也会返回结果,结果就是undefined
定义方式2
var abs = function(x){ if (x >= 0){ return x; }else{ return -x; } } 1234567'
function(x){...}这是一个匿名函数,但是可以把结果赋值给abs,通过abs就可以调用该函数
javascript可以传任意个参数,也可以不传参数,但是不会报错(危险的设计。。。)
可以通过类型校验手动抛出异常
var abs = function(x){ if (typeof x != 'number'){ throw 'Not a Number'; } if (x >= 0){ return x; }else{ return -x; } } document.writeln(abs()); 123456789101112
arguments关键字
代表传递进函数的所有参数,是一个数组(c 的 argv)
var isPostive = function(a,b){ if (typeof a != 'number'){ throw 'Not a Number'; } if (typeof b != "string"){ throw 'Not a Number'; } for (let i = 2;i < arguments.length;i++){ console.log(arguments[i]); } if (a >= 0){ return a; }else{ return b; } } document.writeln(isPostive(-1,'负数',3,4));
12345678910111213141516171819rest关键字(ES6)
类似c的...,实现对于变长参数的存储
var isPostive = function(a,b,...rest){ if (typeof a != 'number'){ throw 'Not a Number'; } if (typeof b != "string"){ throw 'Not a Number'; } console.log(rest); if (a >= 0){ return a; }else{ return b; } } document.writeln(isPostive(-1,'负数',3,4));
123456789101112131415161718变量作用域
在js中 var定义变量实际是有作用域的
假设在函数体中声明,则不可以在函数体外使用(可以使用闭包实现)
内部函数可以访问外部函数的成员,反之则不行(作用域链)
function test1(){ var x = 1; function test2(){ var y = x+1; } var z = y+1;//不允许 } 12345678
函数变量查找遵循就近原则
function test1(){ var x = "outer"; function test2(){ var x = "inner"; console.log(x); } test2() console.log(x); } test1() 12345678910'
声明提升
js执行引擎会自动提升y的声明,但是不会提升y的赋值(在c中这样过不了编译,需要注意,但没人会不声明就用变量吧 >_>)
function variate(){ var x = "x"+y; console.log(x);//xundefine var y = 2; } variate() 1234567'
全局对象 window
var x = 'xxx'; //以下三句等效 alert(x); alert(window.x); window.alert(window.x); 12345
var x = 'xxx'; var old_alert = window.alert; window.alert = function(){}; //失效 window.alert(x) //恢复 window.alert = old_alert; window.alert(x) 1234567891011
js实际上只有一个全局作用域,任何变量(函数也可以视为变量),加入没有在该函数作用域找到,就向外找,,如果全局作用域也没有,报错RefrenceError
方法
把函数写到对象里 this表示当前对象 没有对象作用域时 this默认指向window
var Eintr = { name: 'Eintr', birth: 1999, age: function () { var now = new Date().getFullYear(); return now-this.birth; } }; document.writeln(Eintr.age()); 123456789
apply
修改this的指向
function getAge() { var now = new Date().getFullYear(); return now-this.birth; }; var eintr = { name: 'Eintr', birth: 1999 }; var impact = { name: 'Eintr', birth: 2000 }; document.writeln(getAge.apply(eintr,[])); document.writeln(getAge.apply(impact,[]));
1234567891011121314151617常用对象
Date
var now = new Date(); console.log(now.getFullYear()); console.log(now.getMonth()); console.log(now.getDate()); console.log(now.getDay()); console.log(now.getHours()); console.log(now.getMinutes()); console.log(now.getSeconds()); //时间戳 console.log(now.getTime()); //时间戳转换为标准格式 console.log(now.toISOString(now.getTime())); 1234567891011121314'
JSON
JSON是什么 是个string
JSON(javascript object notation JS对象简谱)是一种轻量级的数据交换格式简洁和清晰的层次结构使得JSON成为理想的数据交换语言在js中一切皆对象,任何js支持的类型都可以用JSON表示
格式
对象 {}数组 []所有的键值对 都是用key:valuevar user = { name: "Eintr", age: 3, sex: '男' } //对象转换json string let jsonUser = JSON.stringify(user); console.log(jsonUser); //json string 转对象 let obj = JSON.parse('{"name":"Eintr","age":3,"sex":"男"}'); console.log(obj); 1234567891011'
Ajax
原生的js写法 xhr异步写法JQuey封装好的方法 $("#name").ajax("")axios 请求相关知识
JavaScript 中的对象类型
前端开发综合指南:HTML、CSS和JavaScript详解
HTML + CSS + JavaScript 两小时快速入门教程
前端安全&反爬虫AST混淆JavaScript与还原—(1)JS代码安全防护原理本章将学习JavaScript的安全防护
JavaScript DOM编程艺术
javascript:void(0);用法及常见问题解析
Kotlin 学习笔记 (九) 可怕的 lambda 及 高级函数
《JavaScript
javascript dom 编程艺术pdf javascript dom编程艺术pdf下载网盘
【转】Android关于this.context=context以及构造函数理解
网址: Hello JavaScript —— 2 函数 https://www.huajiangbk.com/newsview1235019.html
上一篇: 福彩2023222期[榴莲]3D |
下一篇: 实验=L= —— 晋江文学城网友 |
推荐分享

- 1君子兰什么品种最名贵 十大名 4012
- 2世界上最名贵的10种兰花图片 3364
- 3花圈挽联怎么写? 3286
- 4迷信说家里不能放假花 家里摆 1878
- 5香山红叶什么时候红 1493
- 6花的意思,花的解释,花的拼音 1210
- 7教师节送什么花最合适 1167
- 8勿忘我花图片 1103
- 9橄榄枝的象征意义 1093
- 10洛阳的市花 1039