- JavaScript用于网页和用户之间的交互,完整的javascript由语言基础,BOM和DOM组成。
- javascript和DOM结合的一个简单例子 ````
这个是一段可以被javascript隐藏的文本
3. javascript都是放在script标签中的,一旦加载,就会执行
4. 如果有多段script代码,会按照从上到下,顺序执行
5. 声明变量时 关键字var 可有可无
6. 基本数据类型 undefined,Boolean,Number,String,null
7. 与java不同的是,javascript中没有字符的概念,只有字符串,所以单引号和双引号,都用来表示字符串。
8. 变量的类型是动态的,当值是整数的时候,就是Number类型,当值是字符串的时候,就是String类型
9. 伪对象概念:javascript是一门很有意思的语言,即便是基本类型,也是伪对象,所以他们都有属性和方法。
10. Number转换为字符串的时候有默认模式和基模式两种
var a=10;
document.write(‘默认模式下,数字10转换为十进制的’+a.toString()); //默认模式,即十进制
document.write(“
”);
document.write(‘基模式下,数字10转换为二进制的’+a.toString(2)); //基模式,二进制
document.write(“
”);
document.write(‘基模式下,数字10转换为八进制的’+a.toString(8)); //基模式,八进制
document.write(“
”);
document.write(‘基模式下,数字10转换为十六进制的’+a.toString(16)); //基模式,十六进制
document.write(“
”);
11. 数组自定义排序
function comparator(v1,v2){ return v2-v1; //v2-v1表示大的放前面,小的放后面 }
12. 连接数组
var x = new Array(3,1,4); var y = new Array(1,5,9,2,6); var z = x.concat(y);
13. 遍历数组
for(i=0;i<x.length;i++){ //普通for循环 p(x[i]); }
for(i in x){ //for in 循环 p(x[i]); }
14. 创建数组
var x = new Array(); //创建长度是0的数组 p(‘通过 new Array()创建一个空数组:’,x); x = new Array(5); //创建长度是5的数组,,但是其每一个元素都是undefine p(‘通过 new Array(5)创建一个长度是5的数组:’,x); p(‘像new Array(5) 这样没有赋初值的方式创建的数组,每个元素的值都是:’,x[0]); x = new Array(3,1,4,1,5,9,2,6); //根据参数创建数组 p(‘创建有初值的数组new Array(3,1,4,1,5,9,2,6) :’,x);
15. 方法 unshift shift ,分别在最开始的位置插入数据和获取数据(获取后删除)
16. 获取子数组
数组x是:3,1,4,1,5,9,2,6 x.slice(1)获取的子数组是:1,4,1,5,9,2,6 x.slice(1,3)获取的子数组是:1,4 第二个参数取不到
17. 删除和插入元素
数组x是:3,1,4,1,5,9,2,6 x.splice (3,2) 表示从位置3开始 ,删除2个元素:3,1,4,9,2,6 x.splice(3,0,1,5) 从位置3开始,删除0个元素,但是插入1和5,最后得到:3,1,4,1,5,9,2,6
18. 获取一周的第几天
var day=new Date().getDay(); //通过日期对象获取数字形式的星期几 var weeks = new Array(“星期天”,”星期一”,”星期二”,”星期三”,”星期四”,”星期五”,”星期六”);
document.write(“今天是 : “+weeks[day]);
19. 在JavaScript中可以自定义对象,添加新的属性,添加新的方法
var hero = new Object(); hero.name = “盖伦”; //定义一个属性name,并且赋值 hero.kill = function(){ document.write(hero.name + “ 正在杀敌” ); //定义一个函数kill }
hero.kill(); //调用函数kill
20. 通过function设计一个对象
通过new Object创建对象有个问题,就是每创建一个对象,都得重新定义属性和函数。这样代码的重用性不好 那么,采用另一种方式,通过function设计一种对象。 然后实例化它 。 这种思路很像Java里的设计一种类,但是 javascript没有类,只有对象,所以我们叫设计一种对象
function Hero(name){
this.name = name;
this.kill = function(){
document.write(this.name + “正在杀敌
”);
}
}
var gareen = new Hero(“盖伦”); gareen.kill();
var teemo = new Hero(“提莫”); teemo.kill();
21. 为已经存在的对象,增加新的方法
function Hero(name){
this.name = name;
this.kill = function(){
document.write(this.name + “正在杀敌
”);
}
}
var gareen = new Hero(“盖伦”); gareen.kill();
var teemo = new Hero(“提莫”); teemo.kill();
Hero.prototype.keng = function(){
document.write(this.name + “正在坑队友
”);
}
gareen.keng(); teemo.keng();
22. BOM即 浏览器对象模型(Browser Object Model)
浏览器对象包括 Window(窗口) Navigator(浏览器) Screen (客户端屏幕) History(访问历史) Location(浏览器地址)
23. 获取文档显示区域的高度和宽度
一旦页面加载,就会自动创建window对象,所以无需手动创建window对象。 通过window对象可以获取文档显示区域的高度和宽度
document.write(“文档显示区域的宽度”+window.innerWidth); document.write(“文档显示区域的高度”+window.innerHeight);
24. 获取外部窗体的宽度和高度
所谓的外部窗体即浏览器,可能用的是360,火狐,IE, Chrome等等
document.write(“浏览器的宽度:”+window.outerWidth);
document.write(“
”);
document.write(“浏览器的高度:”+window.outerHeight);
25. 打开一个新的窗口
function openNewWindow(){ myWindow=window.open(“/”); }
26. Navigator即浏览器对象,提供浏览器相关的信息
document.write(“<p>浏览器产品名称:”); document.write(navigator.appName + “</p>”);
document.write(“<p>浏览器版本号:”); document.write(navigator.appVersion + “</p>”);
document.write(“<p>浏览器内部代码:”); document.write(navigator.appCodeName + “</p>”);
document.write(“<p>操作系统:”); document.write(navigator.platform + “</p>”);
document.write(“<p>是否启用Cookies:”); document.write(navigator.cookieEnabled + “</p>”);
document.write(“<p>浏览器的用户代理报头:”); document.write(navigator.userAgent + “</p>”);
27. Screen对象表示用户的屏幕相关信息
document.write(“用户的屏幕分辨率: “)
document.write(screen.width + “” + screen.height)
document.write(“
”)
document.write(“可用区域大小: “)
document.write(screen.availWidth + “” + screen.availHeight)
28. History用于记录访问历史
function goBack() { history.back(); }
29. 跳转到另一个页面
function jump(){ //方法1 //location=”/”;
//方法2 location.assign(“/”);
}
30. Location的其他属性
p(“协议 location.protocol:”+location.protocol); p(“主机名 location.hostname:”+location.hostname); p(“端口号 (默认是80,没有即表示80端口)location.port:”+location.port);
p(“主机加端口号 location.host: “+location.host); p(“访问的路径 location.pathname: “+location.pathname);
p(“锚点 location.hash: “+location.hash); p(“参数列表 location.search: “+location.search); ```