JavaScript的基础知识总结-js的三个重要对象

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 客户端JavaScript的三个重要的对象

客户端JavaScript的三个重要的对象:Window Document和Element;Window是全局对象,它的属性和方法是全局变量和全局函数,其中里面的属性location指向Location对象,Location对象指定当前窗口的URL;属性document指向对象Document对象,通过document.getElementById('id')能获取到Element对象;

        Web文档(document):一些呈现静态信息的页面,虽然有的页面是会动的,但信息本身还是静态!

        Web应用:可以动态载入信息,相比与文档的文本化,应用看起来更加图形化;

       

        客户端Js被嵌入进HTML文档里面出来有 内联(直接在标签里面写),src引入,直接在html属性里面写,还有一种是,放在URL里面,以javascript:开头,使用的是javascript:协议。

要测试一小段js代码,可以直接在浏览器地址栏输入javascript:js代码;   呵呵呵呵 这句话可以替换当前页面文档内容;

        客户端js的时间线:

            1、Web浏览器创建Document对象,并开始解析Web页面,解析HTML元素和文本内容后添加Element对象和Text节点到文档中,此时document的readystate属性的值是loading;

            2、当HTML解析遇到没有async和defer属性的

            3、当解析器遇到设置了async属性的

            4、当文档完成解析,document.readystate的值变为interactive;

            5、所有有defer属性的脚本,会按照他们在文档里的出现顺序执行;

            6、浏览器在Document对象上触发DOMContentLoaded事件。

            7、文档解析完成,等待其他内容载入(图片等),当所有内容完成载入且脚本完成执行,document.readystate属性改变为complete;Web浏览器触发Window对象上的load事件;

            8、调用异步事件,响应用户操作;

       获取浏览器类型和版本的方法:-

    客户端:使用Navigator对象的属性;Window对象的navigator属性引用的是包含浏览器厂商和版本信息的Navigator对象,其中的一些属性如下:

      appName:Wen浏览器的全称,在IE中,值为Microsoft Internet Explorer  其他浏览器中:Netscape ; 这个可以用来简单判断浏览器是否为IE;、

                appversion: 浏览器版本,可以表示出是第几代浏览器。对于判断浏览器类型没有帮助;

       userAgent: 浏览器在它的User-Agent Http头部中发送的字符串,这个属性包含大部分信息,通常用此属性来判断浏览器的类型和版本;简单判断方法如下:

                            var s = navigator.userAgent.toLowerCase();  

          判断s字符中的信息来获取浏览器信息: //webkit : Safari或Chrome ;        opera: Opera  ;   mozilla: FireFox或者其他基于gecko内核的浏览器; mise: IE;     

      onLine:这个属性如果存在就表示浏览器当前是否连接到网络;

      geolocation: Geolocation对象定义用于确定用户地理位置信息的接口;

               JavaEnabled() :当浏览器可以运行Java小程序时返回ture;

               cookieEnable(): 如果浏览器可以保存永久的cookie时,放回true; 

           服务端可以根据User_Agent头部信息获取;

     客户端js框架:JQuery :几乎是基本的框架了; Prototype:可用于动画和各种特效; Dojo :UI组件多; YUI:yahoo的东西,与dojo差不多; Closure与GWT:都是Google的; 

二、Window:

     1、 弹出窗口测试代码:javascript:var name=prompt('your name?');if(confirm(name))alert(name);

         2、客户端javascript有两个重要的对象,客户端全局对象处于作用域链的顶端,并且是全局变量和函数定义的地方。事实上,没有办法引用到真正的客户端全局对象,全局对象会在窗体载入新内容是被替换,替换的是全局对象的代理对象,HTML5称其为WindowProxy,其与真正的全局Window对象几乎没有区别;客户端的所有引用都是代理对象,即使是this;

相关文章
|
2月前
|
JavaScript 前端开发
如何在 JavaScript 中使用 __proto__ 实现对象的继承?
使用`__proto__`实现对象继承时需要注意原型链的完整性和属性方法的正确继承,避免出现意外的行为和错误。同时,在现代JavaScript中,也可以使用`class`和`extends`关键字来实现更简洁和直观的继承语法,但理解基于`__proto__`的继承方式对于深入理解JavaScript的面向对象编程和原型链机制仍然具有重要意义。
|
2月前
|
Web App开发 JavaScript 前端开发
如何确保 Math 对象的方法在不同的 JavaScript 环境中具有一致的精度?
【10月更文挑战第29天】通过遵循标准和最佳实践、采用固定精度计算、进行全面的测试与验证、避免隐式类型转换以及持续关注和更新等方法,可以在很大程度上确保Math对象的方法在不同的JavaScript环境中具有一致的精度,从而提高代码的可靠性和可移植性。
|
11天前
|
JavaScript 前端开发
【JavaScript】——JS基础入门常见操作(大量举例)
JS引入方式,JS基础语法,JS增删查改,JS函数,JS对象
|
2月前
|
JavaScript 前端开发 Java
springboot解决js前端跨域问题,javascript跨域问题解决
本文介绍了如何在Spring Boot项目中编写Filter过滤器以处理跨域问题,并通过一个示例展示了使用JavaScript进行跨域请求的方法。首先,在Spring Boot应用中添加一个实现了`Filter`接口的类,设置响应头允许所有来源的跨域请求。接着,通过一个简单的HTML页面和jQuery发送AJAX请求到指定URL,验证跨域请求是否成功。文中还提供了请求成功的响应数据样例及请求效果截图。
springboot解决js前端跨域问题,javascript跨域问题解决
|
2月前
|
JSON 前端开发 JavaScript
JavaScript中对象的数据拷贝
本文介绍了JavaScript中对象数据拷贝的问题及解决方案。作者首先解释了对象赋值时地址共享导致的值同步变化现象,随后提供了五种解决方法:手动复制、`Object.assign`、扩展运算符、`JSON.stringify`与`JSON.parse`组合以及自定义深拷贝函数。每种方法都有其适用场景和局限性,文章最后鼓励读者关注作者以获取更多前端知识分享。
28 1
JavaScript中对象的数据拷贝
|
2月前
|
JavaScript 前端开发
Moment.js与其他处理时间戳格式差异的JavaScript库相比有什么优势?
Moment.js与其他处理时间戳格式差异的JavaScript库相比有什么优势?
|
2月前
|
JSON JavaScript 前端开发
使用JavaScript和Node.js构建简单的RESTful API
使用JavaScript和Node.js构建简单的RESTful API
|
自然语言处理 JavaScript 前端开发
学习javaScript必知必会(2)~js词法分析、介绍一下主流的浏览器的开发者工具(js调试和查看网络请求)
学习javaScript必知必会(2)~js词法分析、介绍一下主流的浏览器的开发者工具(js调试和查看网络请求)
161 0
学习javaScript必知必会(2)~js词法分析、介绍一下主流的浏览器的开发者工具(js调试和查看网络请求)
|
JavaScript 前端开发
Javascript之旅——第七站:说说js的调试
原文:Javascript之旅——第七站:说说js的调试      最近比较吐槽,大家都知道,现在web前端相对几年前来说已经变得很重了,各种js框架,各种面对对象,而且项目多了,就会提取公共模块, 这些模块的UI展示都一样,不一样的就是后台逻辑,举个例子吧,我们做企业差旅的时候,通常都有一个成本中心的js公共模块,客户在预定机票 的时候来填写这个成本中心,而这种成本中心分布在online,offline和app等预定端,这样也是方便后期和客户公司进行月结算。
832 0