您好,欢迎访问一九零五行业门户网

JavaScript学习笔记记录我的旅程_基础知识

1、什么是javascript?
(1) html只是描述网页长相的标记语言,没有计算,判断能力,如果所有计算,判断(比如判断文本框是否为空,判断两次密码是否输入一致)店铺放到服务器端执行的话网页的页面会非常的慢,用起来也很难用,对服务器的压力也很大,因此要求能在浏览器中执行一些简单的运算,判断,javascript就是一种在浏览器端执行的语言。
(2) javascript和java没有直接的关系,唯一的关系就是javascript原名livescript,后来吸取了java的一些特性,升级为javascript,javascript有时被简称为js。
(3) javascript是解释性语言,无需编译就可以随时执行,这样哪怕语法有错误,没有语法错误的部分还是能够正确的执行。
js的开发环境
(1) vs中javascript,jqery的自动完成功能。
(2) js是非常灵活的动态语言,不像c#等静态语言那样严谨。
js入门
(1)
复制代码 代码如下:
(2) javascript代码放到。声明到单独的js文件的好处是多页面也可以共享,减少网络流量。
事件
(1) 点击我
我就不弹出东西
单击我
(2) javascript中也有事件的概念,当按钮被点击的时候
1)
2) 只有超链接的href中的javascript中才需要”javascript:”,因为他不是事件,而是把”javascript:'看成像”http:”,”ftp:”,”thunder://”,ed2k://,mailto://一样的网络协议,交由js解析引擎处理,只有href中这一个特列。
js变量
(1) javascript中既可以使用双引号声明字符串,也可以使用单引号声明字符串,主要是方便和html集成,避免转义符的麻烦。
(2) var i=10; //声明一个变量,名字为i,指向10这个整数,一旦指向10,i就是int类型, alert(i);
(3) javascript中有null,underfined两种,null表示变量的值为空,underfined则表示变量还没有指向任何的对象,未初始化。
(4) javascript是弱类型,表示变量的时候无法:int i=10.只能通过var i=10;声明变量,和c#中的var不一样,不是c#中的那样的类型推断。
(5) javascript中也可以不用var声明变量,直接用,这样的变量是”全局变量”,因此除非确实想用全局变量,否则使用的时候最好加上var。
(6) js是动态类型的,因此var i=10;i=”abc”是合法的。
javascript
(1)
复制代码 代码如下:
var sum = 0;
for (var i = 0; i sum = sum + i;
}
alert(sum);
(2) 如果javascript中的代码有语法错误,浏览器会弹出报错信息,查看报错信息就能帮助排查错误。
(3) javascript的调试,使用vs可以很方便的进行javascript的调试,调试时需要注意几点:
1) ie的调试选项要打开,internet选项-高级,去掉”禁用脚本调试”前的勾选。
2) 以调试方式运行界面。
3) 设置断点,监视变量等操作和c#一样。
判断变量初始化
(1) javascript中判断变量,参数是否初始化的三种方法。
复制代码 代码如下:
var r;
if (r == null) { if (typeof (r) == undefined) { if (!x) {
alert(null); alert(undefined); alert(不x);
}
}
}
注:推荐用最后一种方法
函数的声明
(1) javascript中声明函数的方法:
复制代码 代码如下:
function add(i1, i2) {
return i1 + i2;
}
(2) 不需要声明返回值类型,参数类型,函数定义以function开头
复制代码 代码如下:
var r = add(10, 20);
alert(r);
var r = add(tom,, 您好);
alert(r);
(3) javascript中不像c#中那样要求所有路径都有返回值。
匿名函数
(1)
复制代码 代码如下:
var f1 = function sum(i1, i2) {
return i1 + i2;
}
alert(f1(10, 20));
(2) 类似于c#中的匿名函数。
(3) 这种匿名的用法在jquery中用法特别多。
(4)
复制代码 代码如下:
alert(function sum(i1, i2) {
return i1 + i2;
} (100, 10));
注解:c#中匿名函数使用委托来调用。
js面向对象基础
(1) javascript中没有类的语法,是用函数闭包(closure)模拟出来的,下面讲解的时候还是用c#中的类,构造函数等概念,javascript中string,date等”类”都被叫做”对象”,javascript中声明类(类不是类,是对象)。
(2)
复制代码 代码如下:
function person(name, age) { //声明一个函数,当成类用
this.name = name;
this.age = age;
this.sayhello = function () {
alert(你好,我是 + this.name + ,我今年: + this.age + 岁了);
}
}
var p1 = new person(韩迎龙, 23);
p1.sayhello();
(3) 必须要声明类名,function person(name,age)可以看做是声明构造函数,name,age这些属性也是使用者动态添加了。
array()对象
(1) javascript中的array对象就是数组,首先是一个动态数组,而且是一个像c#中数组arraylist,hashtable等的超强综合体。
(2)
复制代码 代码如下:
var names = new array();
names[0] = 韩迎龙;
names[1] = 得到;
names[2] = 说的;
for (var i = 0; i alert(names[i]);
}
(3) 无需预先制定大小,动态。
array()练习1
(1) array练习,求出一个数组中的最大值。
复制代码 代码如下:
array()练习2
(1) 将一个字符串数组的元素的顺序进行反转,{3,9,5,34,54}{54,34.5.9.3}。不要使用javascript中的反转函数,提示:第i个和第length-i-1进行交换,定义函数。
复制代码 代码如下:
array()练习3
(1) 将一个字符串数组输出为|分割的形式,比如:韩迎龙|试试|订单。不要使用javascript中的join函数,arr.join(1)将数组用分割符链接成一个字符串。
复制代码 代码如下:
array的字典用法
(1) js中的array是一个宝贝,不仅是一个数组,还是一个dictionary,还是一个stack。
(2)
复制代码 代码如下:
var names = new array();
names[人] = ren;
names[扣] = kou;
names[手] = shou;
alert(names[人]);
alert(names.人);
for (var k in names) {
alert(k);
}
(3) 像hashtable,dictionary那样用,而且像他们一样的效率高。
array()的简化声明
(1) array还可以有简化的方式
var arr=[3,4,5,6,7]; //普通数组初始化
这种数组可以看做是names[“人”]=”ren”;的特例,也就是key为0,1,2,3,4,5
(2) 字典风格的简化创建方式
var arr={”tom”=30,”jim=”30};
数组,for和其它
(1) 对于数组风格的array来说,可以使用join方法拼接为字符串。
复制代码 代码如下:
var arr = [tom, jim, kencery];
alert(arr.join(,)); //js中join是array的方法,不像.net中是string的方法
(2) for循环可以像c#中的foreach一样的使用。
复制代码 代码如下:
for (var e in document) {
alert(e);
}
其它类似信息

推荐信息