javascript学习7-细节总结

学习js,总结了一些需要注意的细节部分,和大家一起分享,共同进步。

一、javascript区分大小写
js数据类型:
1.基本数据类型-数值型,字符串型,布尔型
2.复杂类型:数组,对象
3.特殊类型:null,undefined
二、javascript中函数2种调用方式
1.根据函数名直接调用,如:test(num1,num2);//此处test为自己写的一个函数。
2.将函数名赋值给变量,变量名(实参)方式来调用。如:var
myFun=test; myFun(num1,num2);
备注:
alert(test)中此时会打印出整个函数的内容,当赋值函数给变量名时,var
myFun=test;alert(myFun)此时也会打印test函数体。
三、函数返回值说明
var
myFun=test(num1,num2);此时如果test有返回值,则myFun为返回值,否则为undefined
四、javascript支持可变参数
比如:


function test()
{
for(var i=0;i<arguments.length;i++)
{
alert(arguments[i]);
}
}
test(1,2);
test(100);

//备注:javascript函数不支持重载。函数名相同参数不同javascript不支持。js只关注函数名
五、javascript一维数组


var a=[1,2,3];
for(var i=0;i<a.length;i++)
{
alert(a[i]);
}

1.数组的引用:数组名[下标]
var
a=[23,‘hello‘,4.5];
alert(a[2]);
2.如果下标越界,则输出undefined。
3.js数组可以动态增长。
4.对字符串可以用split分割成字符串数组
5.数组可以存放任意类型数据
6.for
in用法(了解)


var arr=[‘a‘,‘b‘,‘c‘,‘hello‘];
arr[‘dd‘]=‘gaga‘;
for(var key in arr)
{
alert(key+":"+arr[key]);
}

六、javascript二维数组
允许每行列数不同。


var arr2=[[‘a‘,‘b‘,‘d‘],[‘c‘,‘d‘,‘e‘,‘f‘]];
for(var i=0;i<arr2.length;i++)
{
//输出第一行
for(var j=0;j<arr2[i].length;j++)
{
document.writeln(arr2[i][j]+"&nbsp");
}
document.writeln("<br/>");
}

 

七、二分查找(见js学习6小练习2)

八、javascript
类与对象

javascript所有东西都是对象,基于对象语言。
javascript中么有类,只有原型对象,但是很多人就将此叫做类。

九、创建对象的方法
a.工厂方法-使用new
object俩创建对象并添加相关属性
b.使用构造函数定义类(原型对象)


eg.//此处使用构造函数定义类
function Person(){}
var a=new Person();
window.alert(a.constructor);
var b="1234";
alert(b.constructor);
if( a instanceof Person)
{
alert("a 是person");
}

eg2://属性名称访问
访问属性方法有两种:
1.普通方式 -对象名.属性名
2.动态访问- 对象名["属性名"]


var abc=89;
function Person()
{
}
var p1=new Person();
p1.name="watermelon";
alert(p1.name);
var val="na"+"me";
p1["name2"]="嘎嘎嘎";
alert(p1.name2);
p1[val]="watermelon222";
alert(p1[val]);

十、js回收机制
js提供一种机制,主动释放对象内存:delete功能说明


function Person(){}
var a=new Person();
a.age=50;
delete a.age;
//delete只能删除对象属性,无法删除一个对象属性

function Person()
{
var nam="abc";//私有属性,创建类的对象时不能访问
var age=900;

}

十一、this定义使用
this不能放在类定义外部使用

十二、prototype使用


function Dog(){
}
Dog.prototype.shout=function()
{
//绑定功能到DOG
alert("dog");
}
var dog1=new Dog();
var dog2=new Dog();
dog1.shout();
dog2.shout();
//此处dog1和dog2的shout函数是公共的,指的是一个函数。

十三、javascript基于类object
//初步体验object类的用法


var p=new Object();
p.name="dd";
//array数组
//给array添加一个方法为find(val),返回val的位置
var p1=new Array();
Array.prototype.find=function(val){
for(var i=0;i<this.length;i++)
{
if(val==this[i])
{
return i;
}
}
return -1;
}
p1[0]=1;
p1[1]=2;
p1[2]=3;
alert(p1.find(3));
//结果返回2

十四、javascript中prototype设置的函数 不能访问私有属性

十五、javascript的继承关系
1对象冒充-可以实现多重继承
function
Stu(name,age)
{
this.name=name;
this.age=age;
this.show=function()
{window.alert("name="+this.name+";age="+this.age);}
}
function
MidStu(name,age)
{
this.stu=Stu;
this.stu(name,age);//通过对象冒充的方式来达到继承的效果。备注:如果此句话没有写,就没有实现继承。

}
var midStu1=new MidStu("赵玉婷",20);
midStu1.show();

2、js中重载和重写
2.1、js不支持重载,即不可以通过参数的个数来决定调用哪一个函数,但是js本身支持可变参数,所以可以看成js支持重载。
例如
function abc(){
if(arguments.length==1)...}
2.2、重写:js子类可以重新编写父类的某个方法来实现对其覆盖。

十六、javascript 多态
1、有食物(),人,动物三个类


//主人喂食物给动物
function Master()
{
this.feed=function(animal,food){
document.write("主人给"+animal.name+food.name);
}
}
function Food(name)
{
this.name=name;
}
function Fish(name)
{
this.food=Food;
this.food(name);
}
function Bone(name)
{
this.food=Food;
this.food(name);
}
//动物
function Animal(name)
{
this.name=name
}
function Cat(name)
{
this.animal=Animal;
this.animal(name);
}
function Dog(name)
{
this.animal=Animal;
this.animal(name);
}
var cat=new Cat("小猫咪");
var dog=new Dog("小狗狗");
var fish=new Fish("小鱼");
var bone=new Bone("小骨头");
var master=new Master("西瓜");
master.feed(cat,fish);

十七、闭包


function A()
{
var i=0;
function b()
{
alert(i);
}
return b;
}
var c=A();
c();//此种方法下,由于b中有对临时变量i的操作,故i不能被回收。c()相当于b()
A();//此种方法下,gc垃圾回收机制会直接对垃圾进行回收。

时间: 2024-08-28 15:41:34

javascript学习7-细节总结的相关文章

JavaScript学习总结-技巧、实用函数、简洁方法、编程细节

整理JavaScript方面的一些技巧,比较实用的函数,常见功能实现方法,仅作参考 变量转换 //edit http://www.lai18.com var myVar = "3.14159", str = ""+ myVar,// to string int = ~~myVar, // to integer float = 1*myVar, // to float bool = !!myVar, /* to boolean - any string with le

我的javascript学习之路(一)对象之基础

做了2个多月的ajax项目,对js的学习觉得了深入了不少,把自己的一些学习的经验贴出来,希望对初学者有所帮助,也希望大家能指出我的错误之处或者不当之处. javascript 是基于对象的语言,为什么这么说呢,需要仔细思考. js的单根继承体系需要仔细了解,我觉得在js的世界里本身没有类的概念,他只有对象Object,不像java语言本身就有了Object然后又有Class,js中我们可以自己根据他的语言来构件类这一对象,因为没有语言本身的支持,所以方法就各种各样了,但是只要我们掌握了js的本质

Java程序员的JavaScript学习笔记(14——扩展jQuery UI)

计划按如下顺序完成这篇笔记: Java程序员的JavaScript学习笔记(1--理念) Java程序员的JavaScript学习笔记(2--属性复制和继承) Java程序员的JavaScript学习笔记(3--this/call/apply) Java程序员的JavaScript学习笔记(4--this/闭包/getter/setter) Java程序员的JavaScript学习笔记(5--prototype) Java程序员的JavaScript学习笔记(6--面向对象模拟) Java程序员

Javascript学习总结-基本语法-(一)

1.1.javascript简介(引用百度百科解释) JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能. 在1995年时,由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成.因为Netscape与Sun合作,Netscape管理层希望它外观看

javascript学习路线图

史上最全的javascript学习路线图 JavaSctipt学习路线 完成整个课程大纲需要花上6~8周的时间,将学会完整的JavaScript语言(包括jQuery和一些HTML5).如果你没有时间在6个星期里完成所有的课程(确实比较有挑战性),尽量不要超过8个星期.花的时间越长,掌握和记忆各种知识点的难度就越大. 1-2周(简介,数据类型,表达式和操作符) 如果你还不是很了解HTML和CSS,完成Codecademy上的web基础任务. 阅读<JavaScript权威指南>或者<Ja

javascript学习

javascript 学习 title: Javascripttags: javascript,学习grammar_cjkRuby: true--- 定义变量 三种形式 var name; var name = "zhang san"; var name; name = "zhang san"; Javascript 的数据类型 6种数据类型 字符串单引号或双引号 var name = "zhang san"; var name = 'zhang

Javascript 学习笔记 2: 标识语句

可以在任何语句声明之前使用唯一标识(identifier)和冒号(:)用来标记该语句: identifier: statement 这样,你可以在程序的任何其他地方通过标识来使用这个语句.即使在语句内部也可以使用该语句的标识(例如:循环语句和条件语句).当在一个循环语句前添加一个标识,你可以在语句内部通过break 标识来退出当前循环,也可以通过continue标识来继续执行该语句.例如: mainloop: while(token != null) { // Code omitted... c

JavaScript学习之DIV层与图像

DIV层与图像 一.设计一个可定位的层 1.设置位置(position)和大小 (1)绝对定位(absolute):以页面边框为参照,只要设置好绝对位置,那么元素的位置会始终固定在距离边框某个位置的距离. 绝对定位有两个属性:left和top,分别是距离网页左边和网页顶部的绝对位置,可借助style属性直接设置: style="position:absolute;left:距离左边距离;top:距离顶部距离" (2)相对定位(relative):需要有一个参照元素,设置好相对位置和参照

JavaScript学习05 定时器

JavaScript学习05 定时器 定时器1 用以指定在一段特定的时间后执行某段程序. setTimeout(): 格式:[定时器对象名=] setTimeout(“<表达式>”,毫秒) 功能:执行<表达式>一次. 例子: <!DOCTYPE html> <html> <head> <title>timer1.html</title> <meta http-equiv="keywords" co

Javascript学习--------认识window窗口对象

window对象: Window 对象表示浏览器中打开的窗口. 可以通过window对象设置窗口的大小,位置等. 还可以控制是否加载网页等. window对象集合: 集合 描述 frames[] 返回窗口中所有命名的框架. 该集合是 Window 对象的数组,每个 Window 对象在窗口中含有一个框架或 <iframe>.属性 frames.length 存放数组 frames[] 中含有的元素个数.注意,frames[] 数组中引用的框架可能还包括框架,它们自己也具有 frames[] 数