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

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

基础知识

主流浏览器: 内核:
IE trident
Chrome webkit/blink
firebox Gecko
Opera presto
Safari webkit

浏览器:1.外壳(shell) 2.内核(渲染引擎(语法规则和渲染),js渲染,其他模块)

web发展史:
Mosaic是互联网历史上第一个获得普遍使用和能够显示图片的网页浏览器,于1993年问世(真正的第一个浏览器是www浏览器,但是存在时间极短)

1994年4月,马克·安德森和Silicon Graphics(简称SGI,中译为“视算科技”或“硅图”)公司创始人吉姆·克拉克(Jim Clark)在美国加州设立了“Mosaic Communication Corporation”。Mosaic公司成立后,由于伊利诺伊大学拥有Nosaic的商标权,且伊利诺伊大学已将技术转让给Spy Glass公司,开发团队必须彻底重新撰写浏览器程序代码,且浏览器名称更改为“Netscape Navigator”,公司名称也于1994年11月正式更改为“Netscape Communication Corporation”(中译为“网景”),此后沿用至今。微软的“Internet Explorer”以及“Mozilla Firefox”(“Mozilla Firefox”中的Mozilla指的是Mosaic Killer)等,其早期版本皆以“Mosaic”为基础而开发。微软(比尔盖茨)随后买下Spy Glass公司的技术开发出“Internet Explorer”浏览器,而“Mozilla Firefox”则是网景通讯家开放源代码后衍生出的版本

JavaScript作为Netscape Navigator浏览器的一部分首次出现在1996年,其最初的设计目标是改善网页用户的体验,作者是Brendan Eich。初期JavaScript被命名为“LiveScript”,后因和Sun公司合作,因市场宣传原因更名为“JavaScript”。后来Sun公司别Oracle(甲骨文)公司收购,JavaScript的版权归Oracle所有。

2001年发布的ie6,首次实现了对js引擎的优化和分离。2008年Google发布了最新的浏览器Chrome,他是采用优化后的JavaScript引擎(引擎代号V8),因能把js代码直接转化为机械代码来执行,进而以速度快而闻名。后Firefox也推出了具备强大功能的js引擎。(Firefox3.5 TraceMonkey 对频繁执行的代码做了路径优化 Firefox4.0 JeagerMonkey)

js的特色

  1. 解释性语言(不需要编译成文件,方便跨平台)
  2. 单线程
  3. ECMA标注–为了取得技术优势,微软推出了JScript,CEnvi推出ScriptEase,与JavaScript同样可以在浏览器上运行。为了统一规格JavaScript兼容于ECMA标准,因此也称为ECMAScript

ecmascrip(原生部分,成为es),DOM(浏览器提供),BOM(浏览器提供)

翻译可分为:

  1. 编译性语言:通篇翻译,生成翻译完的文件,系统程序执行文件(c c++)
    优点:翻译较快
    不足:移植性不好(不跨平台)

  2. 解释性语言:逐行翻译,系统执行,不生成文件(javascript php python)
    优点:跨平台
    不足:稍微缓慢一些

  3. oak语言:(java)
    .java文件 -javac-> 编译 -->. class文件 --> jvm-解释执行

js执行队列:单线程,但运作时一般以轮转时间片运作,使其若是以时间段为节点观察看起来像是多线程

js的三大部分

ECMAScript、DOM、BOM

js的引入

  1. 页面级的js在head元素与body元素内均可,引入script元素,在元素内书写js代码,其中其type属性的属性值"text/javascript"(可以写也可以不写,但不能写错,但有时会特意写错把他当做一个库,用来存放不运行的代码)
  2. 外部js文件,在引入script元素,并增设src属性,把书写js代码(后缀为.js)的文件的文件名作为属性值

当外部js引入与页面级js矛盾时,即script元素内有代码,又有src属性,且把书写js代码(后缀为.js)的文件的文件名作为属性值,只有外部引入的代码生效

注:为符合web标准(w3c标准中的一项)结构(html)、样式(css)、行为(js)相分离,所以通常采用外部引入

js基本语法

变量(variable)

变量声明:

  1. 声明,赋值分解
  2. 用var声明变量,用document.write(变量名)输出变量,且每一个var只用于输入一个变量

命名规则:

  1. 变量名必须以英文字母、_、$开头
  2. 变量名可以包括英文字母、_、$、数字
  3. 不可以用系统的关键字、保留字做变量名

值类型——数据类型(不能改变数字的原始类型)

原始值:

  1. Number(数字)等号后直接输入数字进行赋值
  2. String(字符串)等号都加""或’'并在符号内进行赋值
  3. Boolean(逻辑)只有true和false两种属性值分别表示对或错
  4. underfined(只有一个值其内容也是他,表示未定义的)
  5. null(表示占位)

注:String分为“栈”和“堆”,“栈”内为地址,“堆”内为数据。栈用变量名直接表示,堆则是具体的字符串本身

注:字符串的当前字符位的unicode>255时字节长度为2,小于255时字节长度是1

引用值:

  1. array(数组)
  2. Object(对象)
  3. function(方法)
  4. date
  5. RegExp
    ……

语句规则

  1. 语句后面要用分号“;”结束
  2. js语法错误会引发后续代码终止,但是不会影响其他js模块
  3. 书写格式要规范,运算符两边都应该有空格(美观,整洁且方便检查)

注:function test(){}后,if(){}后,for(){}后不用加“;”

语法错误:

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

运算操作符


    • 1.数学运算,字符串连接
      2.任何数据+字符串都等于字符串
  1. “-”、""、"/"、"%"、"="、"()"
    “=“的优先级最低,”()“的优先级最高
    “++”、”–”、"+="、"-="、"
    ="、"/="、"%="

赋值顺序,自右向左;计算顺序,自左向右,特殊优先级特殊处理

    var a = 1 / 0;
    var b = 0 / 1;

则a的值是Infnity b的值是NaN

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值