JavaScript函数的相关基础知识有哪些
Admin 2022-07-07 群英技术资讯 914 次浏览
今天小编跟大家讲解下有关“JavaScript函数的相关基础知识有哪些”的内容 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了相关资料,希望小伙伴们看了有所帮助。优点:
语法
var fun =new Function(代码块);
这种形式构建函数的比较少。
语法:
function 函数名(形参1,形参2......形参N){
语句...
}
var 函数名 = function 函数名(形参1,形参2......形参N){
语句...
}
function sum(a, b) {
console.log(a + b);
}
sum(1, 2);//调用函数,传入实参

参数的数量:
问题: 在JavaScript中调用函数时传递变量参数时,是值传递还是引用传递?
var a = 3;
function fn(a) {
a = a + 1;
}
fn(a);
console.log("a为:", a);// 3

在这里就可以理解为是值(基本)传递
var obj = { name: "心猿" };//声明一个对象
function fn(obj) {
console.log(obj.name);
}
fn(obj);//“心猿”
//这里可以理解为地址值传递,也可以理解为引用传递(地址值)

直接调用:
函数名()
function fn(obj) {
console.log("我是直接被调用的!");
}
fn()//直接调用

obj.函数名()
Obj = {
fun(){
console.log("我是通过对象调用的!");
}
}
Obj.fun();//通过对象调用函数

new fun()
function fun() {
console.log("我是通过new调用的!");
return 1 + 2;//返回一个值
}
var result = new fun();
console.log("result:", result);//fun {}
console.log("result的数据类型:",typeof result);//"object"

注意:
1、用new调用的函数,得到的永远是一个对象,不管函数有没有返回值
2、使用new调用函数,这个函数就是一个用来创建对象的函数(构造函数)
fun.call/apply(obj)调用
这个是临时让fun成为obj的方法进行调用
var obj = { name: "心猿" };//声明一个对象
function fun() {
this.age = 5000;
console.log("通过fun.call(obj)调用函数!");
}
//不能直接通过obj.fun()调用,但是可以通过fun.call(obj)进行调用
fun.call(obj)//相当于obj.fun
//打印通过fun.call(obj)调用函数!
console.log("还可以当做obj的方法调用age的信息 "+"age:",obj.age);//5000

函数可以有返回值,也可以没有返回值。
函数定义完,立即被调用,这种函数叫做立即执行函数
立即执行函数往往只会执行一次。
语法:
(function(){
代码块;
})();
例如:
(function (a, b) {
console.log("num:", a + b);
})(1,3);//4

var obj = new Object()
{
obj.name = "心猿";
obj.age = 3000;
obj.sayName = function(){
console.log("name:",obj.name);
}
}
obj.sayName();

另一种写法:
var obj = {
name: "意马",
age: 3000,
sayName: function () {
console.log("name:", obj.name);
}
}
obj.sayName();

可以看我这篇的不同方法遍历的区别:比较JavaScript中for、forEach、for…in、for…of的区别
使用for...in语句
语法
for(var index in arr)
{
console.log(index);//代码块
}
for ...in语句 对象有几个属性,循环体就会执行几次,每次执行时,会将对象中的一个属性的名字赋值给变量

var person = {
name:"孙悟空",
age:5777,
gender:"男"
};
for(var index in person)
{
console.log(person[index]);
}
作用域指一个变量的作用范围
在JavaScript中一共两种作用域:
1.全局作用域(全局变量)
2.函数作用域(局部变量)
3.块级作用域ES6语法
变量作为window对象的属性保存
var a = 10;
console.log("a:",a);
console.log("window.a:",window.a);
因为环境的原因在node.js下会报错

在浏览器中会正常显示

函数都会作为window对象的方法
function fun(){
console.log("我是window.fun函数!")
}
window.fun();

ReferennceErrorES6(ECMAScript 2016)使用let声明的变量,作用范围在语句块中
for(let i=0;i<100;i++){
}
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章给大家分享的是jQuery改变td背景色的方法,在jQuery中,可以利用css()方法来改变td单元格的背景颜色,文中的示例介绍得很详细,有需要的朋友可以参考,接下来就跟随小编一起了解看看吧。
目录引言通用数据获取用户信息获取页面信息设置时间特定数据手动埋点上报全局自动上报组件上报总结引言上一篇我们详细介绍了前端如何采集异常数据。采集异常数据是为了随时监测线上项目的运行情况,发现问题及时修复。在很多场景下,除了异常监控有用,收集用户的行为数据同样有意义。怎么定义行为数据?顾名思义,就是用户在使用产品过程中产生
property 和 attribute非常容易混淆,两个单词的中文翻译也都非常相近(property:属性,attribute:特性),但实际上,二者是不同的东西,属于不同的范畴。
本文是主要给大家介绍Vue中reactive和ref的内容,接下来会分别介绍reactive和ref的用法以及两者的区别,对大家学习和理解reactive和ref的使用有一定的参考价值,感兴趣的朋友接下跟随小编一起学习一下吧。
JavaScript中怎样对input框设置只读?input框在网页的设计中经常会使用到,但是有时候我们需要设置input框只读, 这样可以防止用户对数据的更改,在某些情况下还是比较实用的。那么有什么方法能设置input框为只读?
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008