0
点赞
收藏
分享

微信扫一扫

【语言基础】

诗远 2022-03-15 阅读 31

语言基础

语言基础


JavaScript 历史

布兰登·艾奇(Brendan Eich,1961年~),1995年在网景公司,发明的JavaScript。

JavaScript诞生于1995年。它当时的目的是为了验证表单输入的验证。一开始JavaScript叫做LiveScript,但是由于当时Java这个语言特别火,所以搭上Java的顺风车,就改名为JavaScript。

同时期还有其他的网页语言,比如VBScript、JScript等等,但是后来都被JavaScript打败,所以现在的浏览器中,只运行一种脚本语言就是JavaScript。

经过许多年的发展,JavaScript从一个简单的输入验证成为一门强大的编程语言。

2003年之前,JavaScript被认为“牛皮鲜”,用来制作页面上的广告,弹窗、漂浮的广告。什么东西让人烦,什么东西就是JavaScript开发的。所以浏览器就推出了屏蔽广告功能。

2007年乔布斯发布了iPhone,这一年开始,用户就多了上网的途径,就是用移动设备上网。JavaScript在移动页面中,也是不可或缺的。并且这一年,互联网开始标准化,按照W3C规则三层分离,人们越来越重视JavaScript了。

今天,JavaScript工程师是能够和iOS、Android工程师比肩,毫不逊色的。

JavaScript是一种具有面向对象能力的、解释型的程序设计语言。更具体一点,它是基于对象和事件驱动并具有相对安全性的客户端脚本语言。


一、JavaScript 基础

JavaScript的组成

  • 核心(ECMAScript)

    ECMAScript是一个标准 。

    因为网景的布兰登(Brendan Eich)开发了JavaScript,为了让JavaScript成为全球标准,几个公司联合ECMA(European Computer Manufacturers Association)组织定制了JavaScript语言的标准,被称为ECMAScript标准。

  • 文档对象模型(DOM)

    Document Object Model。文档对象模型,后边我们会有专门的课程来讲解DOM操作

  • 浏览器对象模型(BOM)

    Browser Object Model。浏览器对象模型,后边我们也会专门来讲bom操作

    JavaScript 的引入及写法

    • 内部书写
    1. 位于 head 部分的脚本:

    当你把脚本放置到 head 部分后,必须等到全部的javascript代码都被下载、解析和执行完成后,才能开始呈现页面的内容(浏览器在遇到body标签才开始呈现内容)。

    1. 位于 body 部分的脚本:

    为了避免上述问题,现代web应用程序一般把javascript引用放在body中,放在页面内容后面。这样,在解析包含的javascript代码之前,页面内容将完整呈现。

    • 在html文件中直接进行代码的书写
  • 外部引入

    • 所有的script元素都放在页面的head元素中。
  • 直接写在标签内

    •   <p onclick="alert('你好');">点击我</p>
      

二、堆栈和垃圾回收

1.栈

var a = 1;
var b = a;
a = 2;
console.log(a,b)

在这里插入图片描述

2.堆

代码如下(示例):

var obj = {
	a:1,
	b:2
};
var obj1 = obj ;
obj.a = 66;
console.log(obj,obj1)

在这里插入图片描述
对象存在堆中 堆中的地址存在栈中,这个时候对象obj obj1在栈中开辟两个内存,存贮的是堆得地址,由于地址一样,所以改变对象中的值,另一个也会改变

堆和栈的要点

  • 堆和栈的要点:
       堆,队列优先,先进先出(FIFO—first in first out)。
       栈,先进后出(FILO—First-In/Last-Out)。
       一般情况下,如果有人把堆栈合起来说,那它的意思是栈,可不是堆。
       堆和栈的对比分析:
       1、堆栈空间分配
       栈(操作系统):由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
       堆(操作系统): 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,分配方式倒是类似于链表
       2、堆栈缓存方式
       栈使用的是一级缓存, 他们通常都是被调用时处于存储空间中,调用完毕立即释放。
       堆则是存放在二级缓存中,生命周期由虚拟机的垃圾回收算法来决定(并不是一旦成为孤儿对象就能被回收)。所以调用这些对象的速度要相对来得低一些。
       3、堆栈数据结构区别
       堆(数据结构):堆可以被看成是一棵树,如:堆排序。
       栈(数据结构):一种先进后出的数据结构。
//    堆栈溢出: 当存储数据达到某一限制时就会造成堆栈溢出
//    内存泄漏: 当不断地向堆中存储数据,而不进行清理 这就是内存泄漏
//    垃圾回收机制: 清理堆中数据释放内存
//    语言中一般存在两种清理方式: 自动清理 手动清理   但是在 JavaScript 中只有自动清理,没有手动清理

// obj = null 清理机制 将对象置为 null 即将obj地址在栈中清除
// 垃圾回收机制: 就是将堆中引用地址的栈清除

三、常用方法

  • console.log()
  • alert() 警告消息框
  • confirm() 确认消息框
  • prompt() 提示消息框----就是专门用来给用户提供输入窗口的
// 写入内容
document.write('写入内容')
// 获取标签 
document.body 
// innerHTML   inner 在什么里面
innerHTML是基于DOM writer是基于document 
		// 写入内容 
        document.write('写入内容') // 它会打开现有HTML中的body部分,重新写入内容,
            // 如果是交互操作 原来有内容,会删除原来的内容,如果不是交互的不删除在原有的添加 
        <button onclick="document.write('重新写入')">点击写入</button>
        document.writeln('5555','888')
        /* 
            注意write()方法不会在每个语句后面新增一行:
            Hello World!Have a nice day!
            注意writeln()方法在每个语句后面新增一行:
            Hello World!
            Have a nice day!
        */
       document.write('<button>anniu</button>') // 还可以写标签HTML
举报

相关推荐

0 条评论