当前位置:蜗牛素材网>综合资讯>图文>正文

javascript入门记录 一分钟复习-JavaScript基础语法

人气:440 ℃/2023-12-11 01:47:23

函数

函数是这样的一段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 多行匹配模式,^匹配一行的开头和字符串的开头,$匹配行的结束和字符串的结束

搜索更多有关“javascript入门记录 一分钟复习-JavaScript基础语法”的信息 [百度搜索] [SoGou搜索] [头条搜索] [360搜索]
本网站部分内容、图文来自于网络,如有侵犯您的合法权益,请及时与我们联系,我们将第一时间安排核实及删除!
CopyRight © 2008-2024 蜗牛素材网 All Rights Reserved. 手机版