博客列表 >JS - 初体验与基础

JS - 初体验与基础

晴天
晴天原创
2020年05月20日 16:06:30800浏览

Javascript

1.JS 历史

  • Js 前生叫做 Live Script

  • 1995 年 2 月 网景(Netscape)公司为了推广这个脚本,蹭了一下 Java 热度,正式改名为 JavaScript。

  • 由于 js 特受欢迎,第二年,微软(Microsoft)公司在 IE3 浏览器 开发 Jscript

  • 1997 年,ECMA(欧洲计算机制造商会)在 JavaScript1.1 的基础上制定了一个前端脚本标准,编号 ECMA-262 , 这个脚本的名称就变成了 ECMAscript

  • 1998 年 ISO 采用了这个 ECMA-262 标准,改名为 ISO-16262 标准

  • 从此,所有浏览器厂家以 ECMAscript 为标准开发前端脚本语言

  • JavaScript 只是 ECMAscript 标准的一个实现

  • 2011 年 ECMAscript 2011 发布 ES5/ES5.1

  • 2015 年 发布 ES6 同时改名 ECMAscript 2015

  • 之后发布的就叫 ECMAscript 2016 / 2018 / 2020 ….

2. JS 组成

  • JS 语言核心组成三部分
组成部分 描述
ECMAsctipt 核心语法
DOM Document Object Model 文档(html/xml)对象模型
BOM Browser Object Model 浏览器窗口对象模型
  • 定时器:Timeout() ,宿主环境提供的 api

  • 执行环境:

    • 浏览器

    • 命令行

    • Node.js

  • web 开发 主要是浏览器执行环境

3.基础案例

3.1 注释

  • 使用与 PHP 相同的注释方法

    | 名称 | 演示 |
    | ———— | ————————— |
    | 单行注释 | // balabala... |
    | 多行注释 | /* balabala...*/ |

3.2 标签属性

  • js 要写到 html 文档 <script></script> 标签中

  • 当然 也可以链接外部 js 文档 <script src="teat.js"></script>

    • 注意 一旦使用 src 链接外部 js 那么这段标签中的 js 内容将会失效,需要另写一对<script></script>实现
  • 这对标签可以放到 html 文档中任何地方 head 中 body 中 html 中 甚至 HTML 之外 都可以 就像是 PHP 的 <?php ?>

  • 注意 HTML 是超文本标记语言,是按上下顺序执行加载, 当然也可以用<script></script>中的属性定义它的加载方式

属性名 演示 功能
defer <script defer ></script> 当页面所有 html 加载完成后 再执行或加载 js 或者直接将 script 元素放到文档最下面是一样的效果
async <script async ></script> 异步加载,当 html 加载遇到 js 文档时,会分两个线程,1.继续加载 html 2.加载该 js 文档 ,js 文档加载完成后不管 html 文档有没有加载完,都立即执行 js 文档

3.3 函数与变量

  • js 字符编码集:Unicode 每个字符采用两个字节表示。
  • 可以使用中文作为变量名,但不要用!
  • 关于转义字符/:出现在正常的字符前无效

3.3.1 变量

在 JS 中声明变量使用关键字 var;
打印到控制台使用console.log()

  1. //示例
  2. var username = "admin";
  3. // 打印
  4. console.log(admin);

  • 注意 js 的打印是输出到控制台中,并非页面中 浏览器按 F12 选择 Console 查看

  • js 中变量跟 php 一样是区分大小写的! var username = "admin";var Username = "peter"; 这是两个完全不同的变量

  • js 中允许变量更新 以及重新声明

  1. var username = "admin";
  2. console.log(username); //输出 admin
  3. // 更新
  4. username = "peter";
  5. console.log(username); //输出 peter
  6. // 重新声明
  7. var username = "sunny";
  8. console.log(username); //输出 sunny
  • js 中可以访问在前 声明在后 那么变量的值默认为undefined
  1. // 访问在前
  2. console.log(username); // 输出 undefined
  3. // 声明在后
  4. var username = "admin";
  5. console.log(username); // 输出 admin

3.3.2 函数

  • 函数声明与 php 相同 关键字function

  • 注意 在 JS 中 函数同样区分大小写 这是与 PHP 不同点之一;

  1. // 声明一个变量 小写
  2. function name() {
  3. console.log("hello name");
  4. }
  5. // 大写
  6. function Name() {
  7. console.log("hello Name");
  8. }
  9. // 调用
  10. name();
  11. Name();

  • 关于函数的作用域
    • js 中函数作用域可以直接访问全局中的变量
  1. var username = "admin";
  2. // 创建函数
  3. function func() {
  4. // 在js中 连接字符串使用 +
  5. console.log("username = " + username);
  6. }
  7. // 调用
  8. func();

3.4 块作用域

  • 作用域是一个对象,用来查找变量的工具

  • js 与 php 一样存在函数作用域与全局作用域

  • 但均不存在块作用域!

  • 当然 es6 中已经支持块作用域了;

  1. {
  2. // 块作用域
  3. // es6 语法
  4. let admin = "peter";
  5. // 块内访问
  6. console.log(admin); //正常输出
  7. }
  8. // 全局访问
  9. console.log(admin); //报错

4. 总结

感觉 js 天生是为php 分担压力的, 将所有数据传到前端让js处理 减轻服务器压力

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议