JavaScript浏览器发展史,js介绍入门,js引入,变量,值类型,运算符

本文介绍了JavaScript的发展历程及其与浏览器的关系,从Mosaic浏览器到现代浏览器的演变过程,JavaScript从LiveScript更名并逐渐成为网页交互的重要组成部分。文章还探讨了浏览器的组成,JavaScript引擎的优化,以及JavaScript的基础语法。

javaScript 浏览器发展史

Mosaic, 是互联网史上第一个获普遍使用和能够显示图片的网页浏览器。于1993年问世。

1994年4月,马克.安德森和Silicon Graphics(简称为SGI,中译为“视算科技”或“硅图”)公司的创始人吉姆·克拉克(Jim Clark)在美国加州设立了“Mosaic Communication Corporation”。

Mosaic公司成立后,由于伊利诺伊大学拥有Mosaic的商标权,且伊利诺伊大学已将技术转让给Spy Glass公司,开发团队必须彻底重新撰写浏览器程式码,且浏览器名称更改为Netscape Navigator,公司名字于1994年11月改名为“Netscape Communication Corporation”,此后沿用至今,中译为“网景”。 微软的Internet Explorer及Mozilla Firefox等,其早期版本皆以Mosaic为基础而开发。微软随后买下Spy Glass公司的技术开发出Internet Explorer浏览器,而Mozilla Firefox则是网景通讯家开放源代码后所衍生出的版本。

js历史

JavaScript作为Netscape Navigator浏览器的一部分首次出现在1996年。它最初的设计目标是改善网页的用户体验。

作者:Brendan Eich

期初JavaScript被命名为,LiveScript,后因和Sun公司合作,因市场宣传需要改名JavaScript。后来Sun公司被Oracle收购,JavaScript版权归Oracle所有。

浏览器组成

1.shell(贝壳)部分;

例如:工具栏,下拉菜单

浏览器界面中用户能看到且能操作的部分

2.内核部分

浏览器中用户看不到的且能处理代码并且代码能够完整显示出来的部分

2.1 渲染引擎(语法规则和渲染)

从上至下绘制,主要负责html,css一些基础语法的识别,以及于这个浏览器怎么去绘制这个页面。

汽车发动机马达==>引擎

2.1 js引擎

主要负责js

其他模块

js引擎

2001年发布ie6,首次实现对js引擎的优化。

2008年Google发布最新浏览器Chrome,它是采用优化后的javascript引擎,引擎代号V8(用c语言,c++做的),因能把js代码直接转化为机械码来执行,进而以速度快而闻名。

后Firefox也推出了具备强大功能的js引擎

Firefox3.5 TraceMonkey(对频繁执行的代码做了路径优化)

Firefox4.0 JeagerMonkey

js逼格

编译性语言(c c++): 先通篇翻译,翻译成的结果汇总成一个文件,然后系统执行这个文件。

比如Java,一开始编写的是.java文件,系统执行以后会汇总成一个.class文件 ,系统会执行.class文件

优点:快

不足:移植性不好(不跨平台)

Java比较特殊:可编译可解释。

.java --> javac -- > 编译 -->.class --> jvm(通过虚拟机跨平台) -- 解释执行

解释性语言(javascript php) — (不需要编译成文件)跨平台

优点:跨平台

不足:稍微慢

翻译一行解释一行

单线程

ECMA标注 — 为了取得技术优势,微软推出了JScript,CEnvi推出ScriptEase,与JavaScript同样可在浏览器上运行。为了统一规格JavaScript兼容于ECMA标准,因此也称为ECMAScript

js介绍入门,js引入,变量,值类型,运算符

主流浏览器
IE                      trident
Chrome                  webkit/blink
firefox                 Gecko
Opera                   presto
Safari                  webkit

开始学习javascript

如何引入js?

页面内嵌<script></script>标签

外部引入<script src=“location”></script>

为符合web标准(w3c标准中的一项)结构、样式、行为相分离,通常会采用外部引入

js基础语法

变量(variable)

概念:将一堆数据放到变量里以便后续使用。

变量声明

声明、赋值分解:var a;a = 100;a = 200;

通过var给window上添加的属性,叫做不可配置性属性

新变量会覆盖原变量

单一var声明法: var a = 10, b = 20, c = 30, d = 40, e;

命名规则

1.变量名必须以英文字母、_、$ 开头

2.变量名可以包括英文字母、_、$、数字

3.不可以用系统的关键字、保留字作为变量名

有特殊语法含义的词叫做关键字

系统时刻在更新升级,未来可能会用这个单词当做关键字,现在可能没有什么意义,未来还有含义,这种叫做保留字。


基本语法

值类型

不可改变的原始值(stack栈数据)

Number:var b = 123.123,

String:var b = "abc",

Boolean: var b = false,

undefined: var b = undefined,

null: var b = null

引用值(heap堆数据)

array, object, function

原始值跟原始值的赋值是拷贝,他们之间是互不影响的。

例如:

var a = 10;
var b =a;
a = 20;
document.write(b);
打印出b的值为10
最后的a会在栈内存里重新申请一个房间
放入20这个值,原先存有10的房间还存在
在底部。要想删除它除非内存存满了,
然后删除,
再重新覆盖,10才会真正的删除掉。

引用值跟引用值之间的拷贝是地址,他们指向的房间一样

例如:

var arr = [1,2];
var arr1 = arr;
arr.push(3);
ducument.write(arr,arr1);
打印出的值都是[1,2,3];
通过push的方法改变数组里的内容,所以值相同

var arr = [1,2];
var arr1 = arr;
arr= [1,3];
document.write(arr,arr1);
打印出的值为[1,3][1,2];
最后arr砍断之前指向[1,2]这个房间的线,重新申请了一个房间,
地址改变指向[1,3]这个房子了。[1,2]这个房间还是存在的,可以数据恢复。

js语句基本规则

语句后面要用分号结束“;”

js语法错误会引发后续代码终止,但不会影响其它js代码块

错误分成两种

1.低级错误(语法解析错误)

2.逻辑错误(标准错误,情有可原)

var a =10;
document.write(a);
document.write(b);
document.write('20');
程序在解释执行之前通篇扫描没有语法错误,就会解释一行执行一行,发现b未经申明就使用,在程序执行到document.write(b)时报错,并且后续代码不执行,最后打印结果只有10

书写格式要规范,“= + / -”两边都应该有空格

js运算符

运算操作符

“+”

1.数学运算、字符串链接

2.任何数据类型加字符串都等于字符串

“-”,“*”,“/“,“%”,”=“,“()”

优先级”=“最弱,”()”优先级较高

“++”,“- -”,”+=“,“-=”,“/=“,“*=”,“%=”

其他比较特殊的运算:


逗号运算符
var a = (1 - 1, 1 + 1);
逗号运算符,前后进行计算,返回逗号后面的值
逗号运算符练习题
写出下列程序的执行结果:
var f = (
        function f() {
            return "1";
        },
        function g() {
            return 2;
        }
    )();
    console.log(typeof f);
    //先算括号,然后算逗号运算符,返回后面的值,执行后面的括号,执行剩下2,所以typeof值为number
var a = 0 / 0; aNaN

NaN 英文名为 Not a Number

var a = 1 / 0 ; aInfinity
var a = -1 / 0 ; a-Infinity

var a = 10;
var b = ++a - 1 + a++;
document.write(b + " " + a );

首先++a先加加,
a后赋值为11减去1值为10
,此时后面的a已被赋值为11了,
然后再加已被赋值为11a
然后将11的值先赋值于a再加加,
此刻a的值就变成12了。
最后打印出b值为21a的值为12

区别主要在于++a,先运算后赋值。 a++先赋值后运算。

内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值