javascript入门记录 一分钟复习-JavaScript基础语法
函数
函数是这样的一段JavaScript代码,他只定义一次,但可能被执行或调用任意次。如果把函数挂载在一个对象上,作为对象的一个属性,就称它为对象的方法。当通过这个对象来调用函数时,该对象就是此次调用的上下文,也就是该函数的this的值。
函数定义的关键词function,函数名可选,并且函数需要在使用前就被声明好。函数运行完可以返回值,如果没有使用return返回值,则会自动返回undefined。函数支持嵌套。
function add(a,b){ return a b}console.log(add(1,2)) // 3function getVoid(){}console.log(getVoid()) // undefined
方法链,当方法的返回值是一个对象,这个对象还可以再调用它的方法,那么就能实现一种链式的调用方式。
shape.setX(100).setY(100).setSize(50).draw();
函数的参数如果在调用的时候没有赋值,则在函数内,它将等于undefined。函数体内,存在一个标识符arguments,它指向实参对象的引用,可以通过它获取所有实参与callee、caller属性。callee属性指向了当前正在执行的函数。caller是非标准的,可以通过它访问调用栈。
function add(a,b){ console.log(arguments) return a b}console.log(add(1,5))console.log(add(1,7,2))console.log(add(1))
定义匿名函数且立马使用。
(function(){ // 模块代码}()) // 结束函数定义并立即调用它
函数对象
var a = "1"function getA(){ var a = "2" return function(){ return a }}getA()(); // =>2
闭包指的是:能够访问另一个函数作用域的变量的函数。使用闭包技术实现共享的私有状态。
function getA(){ var a = 1 return function(){ return a; }}getA()() // =>2getA()() // =>3
函数中可以使用arguments.length与arguments.callee.length来判断参数传入个数是否正确。函数也可以看成是一个特殊的对象,也具备prototype属性。提供call()、apply(),可以编写能够在不同对象上使用的方法。call与apply的第一个参数都是上下文对象,而区别是call调用的函数的参数从call的第二个参数开始一个一个传,而apply则是把参数都放在一个数组里面,放在第二个参数中。JavaScrtipt提供bind函数,可以把对象绑定到函数上,成为函数的上下文。可以使用Function函数来构造一个函数,但是这个构造出来的函数不具备域概念。
var person = { fullName: function(city, country) { return this.firstName " " this.lastName "," city "," country; }}var person1 = { firstName:"Bill", lastName: "Gates"}person.fullName.call(person1, "Seattle", "USA");var person = { fullName: function(city, country) { return this.firstName " " this.lastName "," city "," country; }}var person1 = { firstName:"Bill", lastName: "Gates"}person.fullName.apply(person1, "Seattle", "USA");function f(y) { return this.x y }var o = {x:1}var g = f.bind(o)g(2) // =>3var f = new Function("x","y","return x y")f(1,2) // =>3var a = 1function getA(){ var a = 2 return new Function("return a")}getA()() // =>1
类和模块
可以使用方法和prototype搭配,来实现来的构造方法。
// 传统的构造方法方式function range(from,to){ var r=Object.create(range.method) r.from=from r.to=to return r}range.method={ hehe:function(){return this.from " " this.to}}var r = range(1,2)console.log(r.hehe())// 使用方法和prototype搭配,实现构造方法方式function Range(from,to){ this.from=from this.to=to}Range.prototype={ hehe:function(){return this.from " " this.to}}var r = new Range(1,2) // 修改了prototype,需要使用new方法来实例化才行console.log(r.hehe())
可以使用extend函数来合并对象。
extend({},{ add:function(a,b){ return a b }})
正则表达式的模式匹配
JavaScript中支持使用正则表达式。
var pattern = /s$/; // 创建以s结尾的正则表达式var pattern = new RegExp("s$") // 创建以s结尾的正则表达式// 正则表达式修饰符// i 执行不区分大小写的匹配// g 执行一个全局匹配,简言之,即找到所有的匹配,而不是在找到第一个之后就停止// m 多行匹配模式,^匹配一行的开头和字符串的开头,$匹配行的结束和字符串的结束
- 03-10创意毕业照学士服和正常衣服 师生设计的原创毕业服一亮相
- 02-04插混油电混增程式哪个好?什么是增程式,油电混插电混
- 02-03九寨沟旅游自驾游最佳路线 最详细九寨沟自驾游线路及攻略
- 05-12菌菇怎样油炸才好吃:厨师长分享脆皮糊调制方法
- 11-22玛莎拉蒂吉博力租车为什么很贵?花160万买辆玛莎拉蒂吉博力做租车
- 09-13手机无信号的解决方法有哪些?手机信号之下篇,手机没信号
- 03-03青海沙漠光伏大基地:青海戈壁荒滩兴起光伏海
- 05-16airpods单独一只怎么连接iphone?除了,iPhone以外
- 04-29小熊美术与美术宝哪个好?线上美术选哪家小熊美术
- 02-05坟上长出狗尾巴草的传说,老农拔下坟头树枝道士道
- 04-18陶粒水培蝴蝶兰新手:如何水培蝴蝶兰
- 02-27淘宝上ar是什么?是不是一个必要的虚构
- 01-30地球太阳银河系儿歌:儿歌中的天体物理学
- 02-13上班经常背痛是怎么回事?工作坐久了背痛顺手做多5件事
- 12-05兰州旅游文字攻略大全最新:游记,兰州心灵的融合
- 02-07平潭7路公交车恢复运行了吗?K1路公交线路将恢复运行
热门
推荐
- 1幼儿园春游活动计划书汇编227
- 2记一件难忘的事的满分作文265
- 3电脑的安全模式进入方法254
- 4将无线路由器恢复了出厂设置结果连不上网怎么办195
- 5小学生消防安全宣传口号455
- 6电脑网络正常打不开网页怎么办373
- 7精华安全承诺书合集九篇362
- 8交通协管换位体验活动策划书178