初学JavaScript(2)

JS基础课程2

一,代码运行规则

1,变量的定义和赋值

函数名,参数名的命名规范:至少由字母,下划线,美元符号,数字其中的一种组成,但不能以数字开头.

变量也可以只定义,不赋值.如:  

 

var num1; 

 

这时被定义的变量num1的值是 undefined .

2,变量的引用

var num1 = 5; 
var num2 = num1;// 引用变量 num1 的值(引用变量时前面不加关键字 var)  

 

3,变量值与实际值

var num1 = 5; 
var num2 = num1; 
console.log(num1); // 打印结果为5 
console.log(num2); // 打印结果为5 

 

 
其中 var num2 = num1 是将变量num1的实际值 5 ,赋值给新定义的变量 num2.
当 num1 的值被改变时也不会间接影响 num2 已有的值.  


4,返回值


返回值 return 用来在函数体内向调用本函数的位置返回某些数据.,当函数没有返回值的时候,会有一个默认的返回值undefined。

 

//无返回值 
function sum(a,b)
{ 
    var result = a+b; 
} 
var sum = sum(1,2);  //sum的值为undefined 

//有返回值 
function sum(a,b)
{ 
    var result = a+b; 
    return result; 
} 
var sum = sum(1, 2);  //sum的值为3,调用sum(1,2)时,该函数实际的结果为被返回的result的值,即3. 

  

5,作用域

作用域分为局部作用域和全局作用域,在函数内部定义变量,仅对该函数有效,在全局定义变量,对全局有效。

二:类和对象

对象 = { 属性名 : 属性值, 属性名 : 属性值, ┅ ┅ }

对象的new表达式

new表达式的作用是生成一个对象,我们一般称其为实例对象。一般情况下,通过字面量来定义一个对象更为简单直接,所以尽量使用字面量定义的方法来生成对象。   

三,this引用

1,this引用的指向

(1)函数调用模式的时候,this指向window。

(2)方法调用模式的时候,this指向方法所在的对象。

(3)构造函数模式的时候,this指向新生成的实例。

(4)apply/call调用模式的时候,this指向apply/call方法中的第一个参数。

this引肯定能指向某一特定对象,this引用是一种在JS代码中随时都可以使用的只读变量。

2,函数的apply与call方法


apply和call能够强制函数内的this指定某一对象.

对函数调用apply或call方法,就能够调用该函数.不考虑函数内的this引用的话,这和类似于 say() 这样的普通调用方式是一样的.

apply和call两者的区别仅在于被调用的函数(方法)内的this引用,this引用的是作为apply/call的第一个参数被传递的对象.而apply与call之间的不同之处在于两者对其他参数的

传递方式.

对于apply来说,剩余的参数将通过数组来传递,而call是直接按原样传递.

对于apply和call两者在作用上是相同的,但两者在参数上有区别的。

对于第一个参数意义都一样,但对第二个参数,apply传入的是一个参数数组,也就是将多个参数组合成为一个数组传入,而call则作为call的参数传入(从第二个参数开始)。

 

func.call(func1,var1,var2,var3);
func.apply(func1,[var1,var2,var3]) ;//对应的apply写法

 

 
同时使用apply的好处是可以直接将当前函数的arguments对象作为apply的第二个参数传入。

四,原型继承

原型prototype

访问构造函数的原型,使用prototype属性。

__proto__————实例

prototype————类

new关键字

new和一个构造函数一起使用,可以实例化一个类。

原型继承


在查询对象robot属性age是什么,先查找对象中的自有属性,如果没有找到,则查找robot的继承属性,直到查找到age或者一个原型是null的对象为止。

在给对象robot的age属性赋值时,如果robot自有属性中已经有一个属性age,则改变age的值,若robot中不存在自有属性age,只存在继承属性age或者所有属性中都没有age属性, 则为robot创建一个自有属性age并为其赋值.赋值只针对自有属性.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值