前言:
当前看官们对“c程序设计第四版笔记”都比较着重,各位老铁们都需要知道一些“c程序设计第四版笔记”的相关文章。那么小编也在网上收集了一些关于“c程序设计第四版笔记””的相关知识,希望咱们能喜欢,你们快快来了解一下吧!五、语句:
1、fon-in语句:此可能用来枚举对象的属性,与for 语句区别在于for只能进行值得循环,而不能进行对象循环;
如:for(var propName in window) {document.write(propName);} ////返回window的对象属性
六、函数(函数即对象):
1、函数的参数传递是通过数据传递的,传几个跟函数接收几个无关,比如:函数有两个参数,而传了0或3个参数,是OK的。
2、函数是通过arguments[n];来取传递过来的参数
如:function asyHi(){alert(argument[0]);} ///可以看到接收没设置参数,但调用函数时有传参数;
argument的两个属性:
length, 获取arguments对象的长度。
callee, 引用当前正在执行的函数(一般用于递归)。【关注这个的使用??】
4、this:在全局中指向windows ; 在局部中指向对应的变量或函数;【P146】
4、调用函数时,若没有给参数传值 ,则参数默认是undefined
5、函数没有重载(即两个函数名相同,但参数不同的函数),若javascript出现两个函数名相同的函数,则只生效后面一个函数;
6、函数定义:P110
1、 funciont sum(x,y){} ////此为函数声明 ,不需要以分号结束(函数声明函数的优先最高,可以放在语句的最后) P175
而默认获取函数名属性name是存在的:alert(funciton.name); ////得到函数名字,如上sum
2、a、var sum=function(x,y){}; ////,此为函数表达式,第二种函数相当于定义变量,最有个分号结束 ;
也叫做匿名函数,因为此时function.name是空的;
b、var sun=function functionName(x,y){}; ////此函数表达式,可以用来递归;
如: var sun=function functionName(x,y){
if(x=1)
return 1;
else
return x*functionName(x);
};
c、(function sayHello() {
alert("hello!");
})(); /////第三种函数表达式写法,后面括号表示立即调用,若有参数则立即生效
解释:函数表达式在执行时,解释器会先读取函数声明,此优先级最高
所以可以采用先调用,再定义函数声明的方式:
alert(sum(10,10));
function sum(x,y){}
注: var anothers=sum; ////使用不带圆括号的函数名是访问函数指针,而非调用函数本身;
1.1、js函数没有重载,相同函数名的后面一个函数覆盖前面一个;
7、函数属性与方法:
7.1、函数默认有两个属性:length(函数接收参数的个数)、prototype(??)
7.2、函数方法:apply()、call()、bind() ====另外应用时详查资料
8、构造函数:
8.1、构造函数都以大写字母打头,而非构造函数都以小写字母打头;
8.2、使用new调用构造函数,这样构造函数会有以下步骤对应对象(例:书P145):
创建一个新对象;
将构造函数的作用域给新对象(this指向了这个新对象);
执行构造函数中的代码(为这个对象添加属性);
返回新
第4章:
一、基本类型和引用类型的值 P68
1、基本类型:直接赋值变量
引用类型:可以添加属性和方法(主要是对象变量);
2、在4.1.2中复制变量值
讲述 两个对象变量通过指针同时指向一个对象,则一个变量属性变了,另一个变量的属性也会变;
如:var name1=new object();
var name2=name2; ////同时指向一个对象
3、检测类型
3.1、typeof 检查反馈基本的类型
instanceof 只检查引用类型,返回true,若检测基本类型,返回flase;
第5章:引用类型
一、object类型对象创建两种方法:
1、使用new操作符后创建:
var persion=new object();
persion.name="One";
2、对象字面量创建对象
var persion={name="One",age=29};
或:
var persion={}
persion.name="One";
persion.age=29;
3、对象属性的写法:
如:调用函数:desplayinfo({name="One",age=29}); ////这样定义了向函数desplayinfo传一个参数,但是带有两个属性的方法;这种方法适合向函数传入大量可行参数的情形;
4、获取对象的属性
如: alert(persion.name);
alert(persion["name"])
或:
var per="name";
alert(persion[per]);
二、数组:
1、定义:
var colors=new Array();
或 var colors=new Array(20);
或:var colors=new Array(“red”,"blue");
或:var colors=Array(3);
或:var colors=[“red”,"blue"];
2、栈方法:P92~93
1、数据推栈:push,pop,shift 等方法
2、排序方法:reverse, sort 等方法
3、几个操作方法:
concat() :基于当前的数组,增加值后,生成新的数组;
slice(x,[y]):从数组的x位置开始,到y位置结束,生成一个新数组;若y省略,则只取当前x位置的值 ;
splice(): 还具备删除、插入、替换等功能的应用;
indexof() ,lastindexof() ////位置函数
4、RegExp类型:主要用于正则表达示 P103
三、对象Object:
1、对象属性(双中括号):[[Configurable]] [[Enumerable]] [[Writable]] [[Value]]
2、访问属性(双中括号):[[Configurable]] [[]]
3、访问属性变量:如:_year; 这种定义下划线+变更名:表示只能通过对象方法访问的属性,而访问器属性包含一个getter(返回变量值)和Setter函数(通过计算来确定正确的版本)
4、对象的属性,需要通过Object.defineProperty() 方法来定义【例:AccessorPropertiesExample01.htm】:
Object.defineProperty(book, "year", {
get: function(){
return this._year;
},
set: function(newValue){
if (newValue > 2004) {
this._year = newValue;
this.edition += newValue - 2004;
}
}
});
标签: #c程序设计第四版笔记