javascript学习之入门(四)

/**
*@author sinux
*@date 2013/9/5
*@Content javascript基础入门(四)
*
*/
二,对象基础
0.作用域
   a.常见的编程语言都离不开作用域的概念。作用域实际上就是指属性或变量的适用范围。一般来讲有公有,私有,及受保护的作用域之分。
   b.实际上,javascript中的所有属性和方法均为公有作用域,没有私有和保护作用域的,显然在js中大谈作用域,除了加深对编程语言的横向比较意识之外,我看不到有什么亮点。
   c.虽然js没有静态作用域,不够它可以给构造函数提供属性和方法。在js中,构造函数只是函数,函数也就是个对象,自然就可以有属性和方法了:
   function fucTest(){
   alert("123");
   }
   fucTest.subFuc=function(){
   alert("456");
   }
   fucTest();//123
   func.subFuc();//456
1.this关键字
   在对象的方法中,关键字this总是指向调用该方法的对象。如:
   function showName(){
       alert(this.name);
   }   
   var student0=new Object();
   var student1=new Object();
   student0.name="sinux";
   student1.name="linux";
   student0.showName=showName;
   student1.showName=showName;
   student0.showName();//sinux
   student1.showName();//linux
   this指针的作用不言而喻。
2.类及对象的定义
    快餐啦,没时间细究啦~
    不过,对象令人感兴趣的是他的概念以及用它解决问题的方式。
3.对象修改
    如何自定义对象内的方法和属性,这个比较高端,现在节省时间略过。
    继续学习可以参考《javascript高级程序设计》第126页左右。
4.继承机制
     概览,略过!具体学习参考《javascript高级程序设计》第130页左右

三.浏览器中的JS  
0.HTML中的js
基础的,概览。
1.SVG中的js
这个pass吧~
2.BOM(浏览器对象模型)
   a.了解BOM的对象体系结构
       Window------document---------anchors
                |                 |
                ---frames         ---forms
                |                 |
                ---history        ---images
                |                 |
                ---location       ---links
                |                 |
                ---navigator      ---location
                |
                ---screen
        Object
        Array
        PS:从以上体系图可以看出window占据比较重要的部分,常用的主要对象都以某种联系关联到window
      b.window对象
      window对象指浏览器窗口,从以上的体系结构可以看出window是BOM的核心,所以除了可以调整浏览器窗口的大小及位置等基本功能外,还具有一定特权,在引用函数、对象或者集合时,我们没有必要显示明确指出是它。
      当然,如果一个窗口中嵌套有多个frame框架,在某一框架内编写的代码中的window默认调用的是所在框架。
      <!DOCTYPE html>
        <html>
        <head>
        <title>FrameSet And Window Test</title>
        </head>
        <frameset  rows="100,*">
        <frame src="Top.htm" name="top"/>
        <frameset cols="50%,50%">
        <frame src="Left.htm" name="Left"/>
        <frame src="Right.htm" name="Right"/>
        </frameset>
        </frameset> 
        </html>
     效果图如下:
      

c.self
    作为window的引用,在某一个框架内代表该框架窗口对象。
    d.窗口操作    
    moveBy(dx,dy)把浏览器窗口相对当前位置水平移动dx个像素,垂直移动dy个像素。
    moveTo(x,y) 移动浏览器窗口,使它的左上角位于用户屏幕的(x,y)处,接受负数。
    resizeBy(dw,dh)把浏览器窗口相对于当前大小,宽度调整dw个像素,高度调整dy个像素。正值表示放大,负值表示缩小。
    resizeTo(w,h)把浏览器窗口的大小调整为宽为W个像素,高为h个像素。
    一些小问题:
    假设通过以上命令调整了浏览器的大小和位置,而没有进行记录,我们该怎么样判断窗口当前的位置和大小呢?
    Mozilla、Opera和Safari均提供了window.screenX和window.screenY属性判断窗口位置。并可以运用window.innerWidth和window.innerHeight属性来判断视口的大小,outerWidth和outerHeight属性判断浏览器窗口自身的大小。
    PS:不建议频繁对窗口进行大小和位置的变化,这将不利于用户的交互感受。
    Code    
    <script type="text/javascript">
    var vwin=window.open("http://www.baidu.com","topFrame","height=150,width=300,top=10,left=10,resizable=yes");
    vwin.moveTo(100,100);
    vwin.risizeTo(200,200);
    vwin.close();
    </script>
   d.系统对话框
    (1)alert()
    仅仅接受一个参数,作为文本输出。
    (2)confirm()
    同样接受一个参数,作为提示文本,不过具有OK|Cancel两个按钮,供用户进行选择。
    Code
    <script type="text/javascript">
    if(confirm("Are U sure?")
        alert("OK");
        else
        alert("Cancel");
    </script>
    (3)prompt()
    语法:prompt("Please input your name",“sinux”);
    返回值为提示框中文本域中的字符串。
    Code
    <script type="text/javascript">
    if("sinux"==prompt("Your name?"))
     alert("OK,sinux.");
    </script>
   e.状态栏
   没错,就是那个提示你鼠标所在位置的链接信息的状态栏,我们通过status和defaultstatus属性进行改变
  f.时间间隔和暂停
   (1)暂停 setTimeout()
    setTimeout("alert("1秒时间到");",1000);
    setTimeout("function() {alert(1秒时间到。);}",1000);
    function timeOutTest(){
    alert(1秒时间到);
    }
    setTimeout(timeOutTest,1000);
    //取消暂停
    var timeOutID=setTimeout("alert("1秒时间到");",1000);
    clearTimeout(timeOutID);
    如果不取消暂停,程序将在制定间隔后执行绑定的代码。
    (2)时间间隔 setInterval()
    语法与以上类似,同时也有clearInterval()与之对应,用法类似。
    如果不取消间隔,该间隔绑定的代码将在设定的间隔后重复执行。
    g.历史
    history属性
    go方法用于前进或后退指定数量的页数(历史中),对于历史中不存在的页数(无效页数),不响应。
    history.go(1);//前进一页
    history.go(-1);//后退一页
    history.back();//后退一页
    history.forward();//前进一页
    history.length//记录浏览器中历史网页的数量
   h.document属性
    document其实也是window对象的一个属性,其具有以下属性:
    alinkColor    激活链接的颜色
    bgColor       页面背景色
    fgColor       页面文本色
    lastModified  最后修改页面的日期,字符串
    linkColor     链接的颜色
    referrer      历史中后退一个位置的URL
    title         标签中显示的文本   可读可写,可以在框架不变的时候轻量级修改标题栏
    URL           当前载入页面的URL,可读可写,可以通过修改该值重导航至另一页面
    vlinkColor    访问过的链接的颜色
    PS:一般我们反对使用这些属性,因为他们引用了body中的就有属性,一般我们可以通过css来达成所需。
    此外,document中包含如form,link,anchor,image等页面元素的集合,不过我觉得这样来访问他们不是特别方便。
    document属性拥有以下几个方法:
    write()和writeln(),后者比前者要多输出一个换行,可以通过其向调用处写入文本或者引入js文件,具体用法和注意事项用到时自己百度~
    open(),close()方法,不赘述,直接代码:
    var oNew=window.open("about:blank","newwindow","height=150,width=300,top=10,left=10,resizable=yes");
    oNew.document.open();
    oNew.document.write("<html><head><title>This is a test</title></head><body><h1>This is a Test.</h1></body></html>");
    oNew.document.close();//写入完毕,关闭以显示结果
    当我们需要打开一个不需要向服务器返回的页面时比较实用。
   i.location
    location包含多种属性,一般多与URL的解析相关,在此不一一列举了,常用的有href属性
    location.href="http://www.baidu.com/";//当然该属性可读,表示该页面的URL
    与上述操作效果类似的可以采用方法的调用:
    location.assign("http://www.baidu.com/");
    location.replace("http://www.baidu.com/");//二者区别在于,后者删除了当前页面在历史中的记录
    重载当前页面
    location.reload();//当其参数为空或false时表示从缓存中重载,为true时在服务器重载。
   j.navigator对象
    利用该对象判断当前页面采用的什么浏览器窗口,具体的属性和方法以及使用技巧到时百度吧~
    k.screen
    用screen对象可以获取关于用户屏幕的基本信息。
    availHeight   窗口可以使用的屏幕高度(像素)
    availWidth    窗口可以使用的屏幕宽度(像素)
    height        屏幕高度(像素)
    width         屏幕宽度(像素)
    example:
    window.moveTo(0,0);
    window.resizeTo(screen.avaiWidth,screen.availHeight);
    //以上用于确定新窗口的大小,还是比较有用的。

原文地址:https://www.cnblogs.com/sinux/p/10389761.html

时间: 2024-08-29 12:54:48

javascript学习之入门(四)的相关文章

JavaScript学习总结(十四)——JavaScript编写类的扩展方法

在?J?a?v?a?S?c?r?i?p?t?中?可以使?用?类的p?r?o?t?o?t?y?p?e属性来?扩?展?类的属?性?和?方?法,在实际开发当中,当JavaScript内置的那些类所提供的动态方法和动态属性不满足我们实际开发时,我们就可以通过"prototype"属性给自定义类添加方法和属性或者扩展原有的类中的方法和属性. 一.扩展JavaScript内置类,添加动态方法 语法格式: 类名.prototype.方法名 = function([param1],[param2],.

JavaScript学习总结(四)function函数部分

转自:http://segmentfault.com/a/1190000000660786 概念 函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块. js 支持两种函数:一类是语言内部的函数(如eval() ),另一类是自己创建的. 在 JavaScript 函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它.(该变量的作用域是局部的). 您可以在不同的函数中使用名称相同的局部变量,因为只有声明过该变量的函数才能识别出该变量. 函数调用 有如下四种调用js函数的方式

javaScript学习(入门)

不落俗套的来讲讲javascript的特点: 1.所有主流浏览器都是支持javascript的. 2.绝打分网页都使用javascript. 3.javascript可以实现网页呈现各种动态效果. 4.简单易学,只要有文本编辑器,就可以编写javascript程序. 作为测试,了解一些开发技能是很有必要的...总之,不要安于做一个只会点点点的测试小菜 开始学习吧... ----------------------------------------------------------------

JavaScript学习笔记(第四章——第六章)

时间戳(2015-06-09 20:58:00) 第四章:变量.作用于和内存问题          typeof:判断元素是什么类型            instanceof:检测引用类型对象是否未指定类型          注:所有引用类型皆为Object的实例          JavaScript没有块级作用域:                    例1: if(true){ var color = “blue”; } alert(color);               // bl

Javascript学习总结-函数-(四)

2.7.     JavaScript函数基础 函数主要用来封装具体的功能代码. 函数是由这样的方式进行声明的:关键字 function.函数名.一组参数,以及置于括号中的待执行代码. 注意:函数的形参是不用声明使用的. 函数的基本语法是这样的: function functionName(arg0, arg1, ... argN) { statements } 例如: function sayHi(sName, sMessage) { alert("Hello " + sName +

JavaScript学习笔记【四】

JavaScript中的引用类型.Date类型和正则表达式RegExp 一.Date类型. 1.Date的构造函数. var now = new Date();   //默认now为系统的当前时间. var now = new Date(2007, 5, 3, 12, 21, 40);    //创建指定日期的now.构造函数的参数分别为年.月.日.时.分.秒.毫秒. //2007年6月3日是12时21分40秒 var now = Date.now();   //当前时间距离1970年1月1日零

JavaScript学习笔记---入门

1.JavaScript 语句和 JavaScript 变量都对大小写敏感. 2.重新声明 JavaScript 变量 如果重新声明 JavaScript 变量,该变量的值不会丢失: 在以下两条语句执行后,变量 carname 的值依然是 "Volvo": var carname="Volvo"; var carname; 3.JavaScript 拥有动态类型.这意味着相同的变量可用作不同的类型:javascript数据类型 -----字符串.数字.布尔.数组.对

JavaScript学习日志(四):BOM

BOM的核心对象就是window,这一章没什么好说的,总结一些比较常用的: 1,a未定义,a; //报错window.a; //undefined 不能用delete删除全局变量 2,html5不支持<frame>标签,但是支持<iframe>标签 3,js中window对象的top,opener,parent,self属性(虽然对于window来说,它们是一种属性,但是也可以直接用他们作为对象)的区别: top:该变更永远指分割窗口最高层次的浏览器窗口.如果计划从分割窗口的最高层

javascript学习笔记(四):事件处理函数和动态创建html标记。

1 HTML的事件属性  全局事件属性:HTML 4 增加了使事件在浏览器中触发动作的能力,比如当用户点击元素时启动 JavaScript. a. Window 事件属性,针对 window 对象触发的事件(应用到 <body> 标签),常用的为onload. b. Form事件,由 HTML 表单内的动作触发的事件(应用到几乎所有 HTML 元素,但最常用在 form 元素中):常用的为onblur.onfocus.onselect.onsubmit. c. keybord事件 d.Mous