JavaScript从零开始4

本文详细介绍了JavaScript的基础知识,包括函数的定义与调用、变量的作用域、常量的使用及解构赋值等内容,并通过实例展示了如何正确使用这些特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JavaScript从零开始4

---------------------------------------------------------------------------------

一、函数

(1)函数的定义

在JavaScript中的定义函数,一般开头使用function表示定义一个函数,+函数名+(参数1,参数2,...)+{函数体}。

function add(x,y)
{
   return x+y;
}
第二方法,在JavaScript中,函数也是对象的一种,所以可以定义一个对象,把一个匿名函数赋值给它。
var add = function (x,y)
{
   return x+y;
};//这里需要加分号
(2)函数的调用
add(3,4);//返回7
add(3,4,5);//返回7,多传的参数没影响
add(3);//返回NaN,少传参数,计算不出number
针对参数的校验,避免传参时出错得到错误的返回,需要做一个判断
function add(x,y)
{
  if(typeof x !== 'number' || typeof y !== 'number')
        throw 'Not a number';//如少传了参数,那么这个少传的参数为undefined, 也是!=='number'
   return x+y;
}
另外,对于参数的管理JavaScript还有一个类似数组的arguments,即调用函数时,传进的参数会暂时保存在这个对象里,只可以在函数内使用。
function showNum(x,y)
{
  if(typeof x !== 'number' || typeof y !== 'number')
        throw 'Not a number';
   console.log('参数个数: '+ arguments.length +',No1: '+ arguments[0] +', No2: '+ arguments[1] +', No3: '+ arguments[2]);
}
showNum(1,2,3);//参数个数: 3,No1: 1, No2: 2, No3: 3
showNum(1,2);//参数个数: 2,No1: 1, No2: 2, No3: undefined
showNum('a',2,3,4);//Not a number
当传参数较多时,使用到数组,可以用...rest(函数的参数),apply(函数继承的方法)
function sum(...rest)//ES6标准引入rest参数
{
    var s=0;
    for(var i=0; i<rest.length; i++)
        s+= rest[i];
    return s;
}
var args=[];
for (var i=1; i<=100; i++) {
    args.push(i);
}
sum.apply(this,args);//5050
二、变量

变量分为全局变量和局部变量。

定义的全局变量都是window的属性,直接使用变量的名字和window点出来的属性是一样的,我们还可以通过window点来改变原有的全局变量。

局部变量需要注意var定义的局部变量在函数体内都是可以使用的,例如for中var定义的局部变量是函数中有效,而let定义的局部变量是块内有效。let(ES6引入)。

function a()
{
   for(var i=0;i<3;i++)
  {
   }
   i+=10;//不会报错
   console.log(i);//13
}
function b()
{
   for(let m=0;m<3;m++)
  {
   }
   m+=10;//会报错 p is not defined
   console.log(m);
}
三、常量

const常量ES6标准引入 const PI = 3.14;

四、解构赋值
解构赋值,通俗的讲就是对应位置的变量赋予对应位置的值的结构。

var [a,b] = [1,2,'a'];
console.log(a);//1
console.log(b);//2 
console.log(c);//a
var [a,[b,c]] = [1,[2,'d']];
console.log(a);//1
console.log(b);//2 
console.log(c);//d
rest, Set, Map, 字符串,对象。
var [a,...b]=[1,2,3,4,5,6];
console.log(a);//1
console.log(b);//[2, 3, 4, 5, 6]
var [a,b,c]=new Set([1,'hello',3]);
console.log(a);//1
console.log(b);//hello
console.log(c);//3

var [name,age,id]=new Map([['name','lili'],['age',18],['id',11]]);//Map的键为字符串
console.log(name);//name,lili
var {name,age,id}={name:'lala',age:18,id:12};//注意对象是花括号
console.log(name);// lala











  




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值