JavaScript特点
- 安全性(不允许直接访问本地硬盘),它可以做的就是信息的动态交互。
- 跨平台性。(只要是可以解释Js的浏览器都可以执行,和平台无关。)
JavaScript与Java不同
JS是Netscape公司的产品,Java是Sun公司的产品
JS是基于对象,Java是面向对象。
JS只需解释就可以执行,Java需要先编译成字节码文件,再执行。
JS是弱类型,Java是强类型。
JavaScript内容
1.JavaScript语法基础
2.使用JS操作网页(DOM)
2.使用JS操作浏览器(BOM)
如何编写javascript的代码
方式1:可以使用
方式2: 引入外部的javascript文件。
格式:
注意:
1.
Number
创建Number对象的方式:
方式1:
var 变量= new Number(数字)
方式2:
var 变量 = 数字;
常用的方法:
toString() 把数字转换成指定进制形式的字符串。
toFixed() 指定保留小数位,而且还带四舍五入的功能。
var num = 10; // 十进制
document.write("十进制:"+num.toString()+"
");
document.write("二进制:"+num.toString(2)+"
"); //2进制
document.write("八进制:"+num.toString(8)+"
");
document.write("十六进制:"+num.toString(16)+"
");
document.write("三进制:"+num.toString(3)+"
"); // 101
var num2 = 3.455;
document.write("保留两位小数:"+num2.toFixed(2))
Math
ceil 向上取整
floor() 向下取整
random() 随机数方法 // 产生的伪随机数介于 0 和 1 之间(含 0,不含 1),
round 四舍五入
document.write("向上取整:"+ Math.ceil(3.14)+"
");
document.write("向下取整:"+ Math.floor(3.14)+"
");
document.write("随机数:"+ Math.random()+"
");
document.write("四舍五入:"+ Math.round(3.75)+"
");
Array
方式1:
var 变量名 = new Array(); 创建一个长度为0的数组。
方式2:
var 变量名= new Array(长度) 创建一个指定长度的数组对象。
方式3:
var 变量名 = new Array("元素1","元素2"...); 给数组指定元素创建数组 的对象。
方式4:
var 变量名 = ["元素1","元素2"...];
数组要注意的细节:
在javascript中数组的长度是可以发生变化的。
var arr = new Array(3); //创建了一个长度为0的数组对象。
arr[100] = 10;
document.write("arr长度:"+arr.length+"
"); //101
Array数组常用方法:
1.arr1.concat(arr2);
arr1 = arr1.concat(arr2); //concat把arr1与arr2的数组元素组成一个新的数组返回。
2.arr.join(str);
var elements = arr1.join(","); // join使用指定的分隔符把数组中的元素拼装成一个字符串返回。
//如arr1 = [a,b,c,d];上式结果为字符串"a,b,c,d"
3.x = arr.pop();
pop :移除数组中的最后一个元素并返回该元素。
4.length = arr.push();
arr1.push("abc"); // 将新元素添加到一个数组中,并返回数组的新长度值。
5.arr1.reverse(); //翻转数组的元素
6.x = arr.shift();
document.write("删除第一个元素并返回:"+arr1.shift()+"
"); //移除数组中第一个元素,并且返回。
7.arr2 = arr1.slice(begin,end)
var subArr = arr1.slice(1,2); //指定数组 的开始索引值与结束索引值截取数组的元素,并且返回子数组。
8.arr.sort(compare);
arr1 = [19,1,20,5];
arr1.sort(sortNumber); //排序,排序的时候一定要传入排序的方法。
function sortNumber(num1,num2){
return num1-num2;
}
9.arr.splice(.....)
arr1.splice(1,1,"a","b","c");
//第一个参数是开始删除元素的索引值, 第二参数是删除元素的个数,往后的数据就是插入的元素。
自定义对象
在javascript没有类的概念,只要有函数即可创建对象。
方式1:
使用无参的函数创建对象。
例子:
function Person(){}
var p = new Person(); //创建了一个Person对象了
p.id = 110;
p.name = "abc";
方式2://推荐
使用带参的函数创建对象。
function Person(id,name){
this.id = id;
this.name = name;
this.say = function(){
....
}
}
var p = new Person(110,"abc"); //创建对象
方式3: 使用Object函数创建对象
var p = new Object();
p.id = 110;
p.name = "abc";
方式4:使用字面量的方式创建.
var p = {
id:110,
name:"狗娃",
say:function(){
....
}
注意:javascript的类名可以直接访问属性,如类名.成员;也可以这样访问类名[成员名字(字符串)]或对象[成员名字(字符串)]
//一个数组工具类例子
javascript 文件:
var tool = new ArrayTool();
function ArrayTool(){
//找最大值
this.getMax = function(arr){
........
return max;
}
//找元素的索引值
this.searchEle = function(arr,target){
.........
}
}
HTML文件:
prototype
prototype注意的细节:
1. prototype是函数(function)的一个必备属性(书面一点的说法是"保留属性")(只要是function,就一定有一个prototype属性)
2. prototype的值是一个对象
3. 可以任意修改函数的prototype属性的值。
4. 一个对象会自动拥有prototype的所有成员属性和方法。
例子:为String类加新方法:
//为String对象的prototype对象添加新的方法,也使得String拥有该方法
String.prototype.toCharArray = function(){
var arr = new Array();
for(var index = 0; index
继承用途:
function Super(){
this.val = 1;
this.arr = [1];
}
function Sub(){
// ...
}
Sub.prototype = new Super(); // 核心 ,使得Sub拥有Super的所有方法```
var sub1 = new Sub();
var sub2 = new Sub();
sub1.val = 2;
sub1.arr.push(2);
alert(sub1.val); // 2
alert(sub2.val); // 1
alert(sub1.arr); // 1, 2
alert(sub2.arr); // 1, 2
BOM编程(Browser Object Model )
- BOM编程基础
全称 Browser Object Model,浏览器对象模型。
JavaScript是由浏览器中内置的javascript脚本解释器程序来执行javascript脚本语言的。
为了便于对浏览器的操作,javascript封装了对浏览器的各个对象使得开发者可以方便的操作浏览器。
BOM对象:
- window 对象
Window 对象是 JavaScript 层级中的顶层对象。
Window 对象代表一个浏览器窗口或一个框架。
Window 对象会在 或
方式1:
/正则表达式/模式
var regex = /正则表达式/标志
方式2:
new RegExp("正则表达式",模式);
var regex = new RegExp("正则表达式", "标志");
正则表达式对象常用的方法:
test() 使用正则对象去匹配字符串 如果匹配成功返回ture,否则返回false.
exec() 根据正则表达式去查找字符串符合规则的内容。
模式:
g (全文查找出现的所有 pattern)
i (忽略大小写)
位置:
^ 开头
$ 结尾
次数:
* 0或多个
+ 1或多个
? 0或1个
{n} 就是n个
{n,} 至少n个
{n,m} 最少n个,最多m个
通配符:
\b 空格
\d 任意数字
\D 任意非数字
\s 任意空白
\S 任意非空白
. 任意字符(除'\n'外)
组合:
[a-z]
[0-9]
等
组:
(正则) 匹配括号中正则表达式对应的结果,并暂存这个结果。
(?:正则) 匹配括号中正则表达式对应的结果,但不暂存这个结果。
\数字 使用第n个组匹配的结果
例子:
var str = "hello123";
var reg = /^[A-Z0-9]+$/i;
alert("匹配吗?"+reg.test(str));
var str ="da jia hao hao xue xi a";
var reg = /\b[a-z]{3}\b/gi;
var line ="";
while((line = reg.exec(str))!=null){
document.write(line+"
")
}