笔记(四)--arguments

1.arguments对象介绍

arguments 凡是函数调用,默认含有一个 arguments 对象
,可以将其看成一个‘数组’。里面存储调用时传入的所有参数,
可以使用数组的索引访问这些参数。

演示代码:

function sum () {
                // 所有的参数都会存储到 arguments 中
                var sum = 0;
                for ( var i = 0; i < arguments.length; i++ ) {
                    sum += arguments[ i ];
                }
                return sum;

注意:函数名.length,即函数的length属性,表示 定义函数时,参数的个数。

2.函数的引用(callee) 与 (caller)

js 中函数也是对象

2.1 callee 在函数内部,他表示 当前函数的引用。
2.2 caller caller 表示调用函数的

调用函数方法:

   arguments.callee:
   //实现递归调用
    function fn() {
       arguments.callee();  // 使用 callee 来递归
   }
   fn();
   //为什么使用 arguments.callee 调用递归呢
   
   // js 是一个弱类型的语言, 可以随意赋值
   
   function f() {
       console.log( 'Hello JS' );
   }

   f = 0;  // 赋值

   console.log( f );
   
   
   // /*2. caller 拜师调用函数*/
   // 在函数 f1 中 调用 函数 f2

   // function f1 () {
   //  f2();
   // }
   
   // f1();
   // f1 就是称为调用者. 调用的发起人.
   // f2 就是被调用者

   // caller 就是在被调用函数中, 获得调用函数的引用

   // 语法: 函数名.caller
   function f2 () {
       console.log( f2.caller );//指的是调用者是谁,这里指的是 itcast
   }

   function itcast() {
       f2();   
   }

   itcast();
   

3.eval()函数

功能:动态的执行代码

eval 函数与 Function 功能类似。
eval 可以直接将字符串作为代码来执行

// 可以直接调用 eval 函数, 来实现字符串代码
    eval( 'var num = 123;' );
    eval( 'console.log( num );' );

    alert( num );

3.1 function 与 eval 的区别

在 eval 函数中, 使用字符串声明的变量, 在 eval 函数外面可以立即使用

Function 是用来生成函数中的, 所以如果要执行, 需要调用;

如果函数要立马执行


    //      (function () { 
    //          alert ( '立即执行函数' ); 
    //       })();
    //       // 又称作 自调用函数

4、json对象的介绍

//  json 格式( 严格的国际通用数据表示协议, 结构 )

//  在 js 中使用的 json 对象, 相对较松散

// json 格式 有两种结构

//  1: {}

//  2: []

// 注意: json 格式中, 键名也必须使用双引号括起来.

4.1将字符串变成对象, 有三种做法

var data = '[ { "name": "张三", "age": 19, "gender": "男"}, { "name": "李四", "age": 18, "gender": "女"} ]';
    // 1. eval 做法
    var o1 = eval( "(" + data + ")" );   // 注意一个习惯. 就是数据两端一般加上圆括号为好

    // 2. Function 做法
    var o2 = (new Function( 'return ' + data ))();

    // 3. 使用 ES5 中引入的标准处理 JSON 的语法
    // JSON.parse(  )
    // 注意: 字符串必须是严格是 json 格式
    var o3 = JSON.parse( data );
    
    将数组转化成 字符串
    var arr = [1,2,3, { a : 1 } ];
    JSON.stringify( arr );
    
    
    字符串解析成 JSON
    var str = '[1,2,3,{"a":1}]';
    JSON.parse( str );

5.instanceof 用法

<script>
    // instanceof 语法
    //  boolean 对象 instanceof 构造函数
    // 判断该对象是否为 构造函数 的 实例   错误

    function Person () {}

    var p1 = new Person();      // 按照原有的原型结构来创建
                                // p1 -> 原来的 Person.prototype -> Object.prototype -> null

    // 设置原型
    Person.prototype = {}; 

    // var p1 = new Person();   // p1 -> 新的 Person.prototype. 即 {} -> Object.prototype -> null

    console.log( p1 instanceof Person );   // 就在判断 {} 是否在 p1 的原型链上

    // 判断 构造函数的 原型属性 是否在对象的原型链上

    

</script>

6.Object.protype_proto

09-完整的原型链结构(包含对象与函数).png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容

  •   引用类型的值(对象)是引用类型的一个实例。   在 ECMAscript 中,引用类型是一种数据结构,用于将数...
    霜天晓阅读 1,035评论 0 1
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,204评论 0 4
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,114评论 0 13
  • 函数和对象 1、函数 1.1 函数概述 函数对于任何一门语言来说都是核心的概念。通过函数可以封装任意多条语句,而且...
    道无虚阅读 4,521评论 0 5
  • 第3章 基本概念 3.1 语法 3.2 关键字和保留字 3.3 变量 3.4 数据类型 5种简单数据类型:Unde...
    RickCole阅读 5,096评论 0 21