- Request、Request.Form和Request.QueryString的区别
- 从表中取出某年或某月的数据
- 学习asp.net比较完整的流程
- .NET 8 中 Program.cs 的标准结构详解
- C#接口的使用
- pr值是什么?影响网页PR值的几个因素
- php substr
- timespan的用法
- 虽然百度知道对发外链收紧
- SEO关键词分类及选择举例
邮箱:
手机:15383239821
javaScript argument 学习笔记
javaScript argument 学习笔记
1.什么是 argument
argument是类数组对象
例子:
function ex1(){console.log(arguments)}ex1(“a”,”A”,0,{foo:”argument”})
运行看结果:
结果是一个数组,但是不是真正的数组;是一个类数组.
再看看arguments代表的内容,其表示了函数执行时传入函数的所有参数.可以用arguments[n],取得每一个参数.
2.arguments 操作
a)argument length;
arguments 是类数组对象,包含length属性;
例子:
function ex2(){console.log(arguments.length;)}ex2();ex2(1,2);ex2(1,2,3);
b)arguments 转数组
Array.prototype.slice.call(arguments)[].slice.call(arguments)
满足一定条件的对象都能被slice方法转化为数组.
例子:
const aaa={0:’a’,1:’b’,length:2}const bbb=[].slice.call(aaa);console.log(Array.isArray(bbb),bbb);
不能将argument对象泄露出去,否则将会造成极大的性能浪费.
例子:
function ex3(){return arguments;}
但可以将其转化为数组:
function ex4(){const arr = new Array(arguments.length)for(let i=0;i<arr.length;i++){arr[i]=arguments[i];}return arr;}
(let 只对他所在的最内侧块内有效,var的范围最少在一个函数内)
c)修改argument的值
在严格模式与非严格模式,修改函数值输出的结果并不相同:
例子:
function ex5(a){“use strict”;console.log(a,arguments[0]);a=10;console.log(a,arguments[0]);arguments[0]=20;xonsole.log(a,arguments[0]);}ex5(1)
例子:
function ex6(a){console.log(a,arguments[0]);a=10;console.log(a,arguments[0]);arguments[0]=20;console.log(a,arguments[0]);}ex6(a)
d)将参数从一个参数传输到另一个函数
function ex71(){ex72.apply(this,arguments);}function ex72(){}
e)arguments与重载
js没有重载;我们需要使用argument进行模拟
function ex8(aaa,bbb,ccc){if(argument.length===2){alert(aaa+bbb)}else if(argument===3){alert(aaa+bbb+ccc)}}ex8(111,222);ex8(111,222,333);
3.ES6中的arguments
a)扩展操作符
function ex9(){console.log(…arguments);}ex9(1,2,3);
b)rest
例子
function ex10(firstArg,…restArg){console.log(Array.isArray(restArg));console.log(firstArray,restArray);}ex10(1,2,3);
c)默认参数
function ex11(firstArg=0,secondArg=1){console.log(arguments[0],argument[1]);console.log(firstArg,secondArg);}ex11(99);
d)argument 转数组
Array.form()
4.数组与类数组对象
const obj={0:”a”,1:’b’}const arr=[“a”,”b”]
对象的键值对
数组的索引
obj的属性是string
srr的索引是 number
创建类数组对象:
例子:(得到Array的所有方法)
function ex12(){}ex12.prototype=Object.crate(Array.prototype);const ex121=new ex12();ex121.push(“a”);
例子:(得到部分方法)
function ex13(){}ex13.prototype.push=Array.prototype.push;const ex131=new ex13();ex131.push(‘a’);ex131.push(‘b’);
来源:https://www.imooc.com/article/14056
- 上一篇:js中arguments介绍
- 下一篇:js序列化和反序列化
-
2012-07-02如何优化网站内 标题 内容 链接 布局
-
2019-04-29wx.navigateTo和 wx.redirectTo
-
2011-02-19C# 如何让代码延迟
-
2013-06-15如何在asp.net的 eval中使用if语句进行判断
-
2024-04-24C#textBox文本框限制
-
2012-06-30SEO基础知识三:SEO主要工作
