2022-04-15

就业班js第一天

<meta charset="utf-8">

一、JavaScript

1 JavaScript 是什么

是一种运行在客户端的脚本语言 (Script 是脚本的意思)

1.2 JavaScript的作用

  • 表单动态校验(密码强度检测) ( JS 产生最初的目的 )
  • 网页特效
  • 服务端开发(Node.js)
  • 桌面程序(Electron)
  • App(Cordova)
  • 控制硬件-物联网(Ruff)
  • 游戏开发(cocos2d-js)

1.3 HTML/CSS/JS 的关系

image

1.4 浏览器执行 JS 简介

浏览器分成两部分:渲染引擎和 JS 引擎

  • 渲染引擎:解析HTML和CSS,俗称内核,比如chrome的blink,以及老版本的webkit
  • JS引擎(JS解释器):用来读取网页中的JavaScript代码,对其处理后运行,比如chrome中的V8(最快的JS引擎)

浏览器本身并不会执行JS代码,而是通过内置 JavaScript 引擎(解释器) 来执行 JS 代码 。JS 引擎执行代码时逐行解释每一句源码(转换为机器语言),然后由计算机去执行,所以 JavaScript 语言归为脚本语言,会逐行解释执行。

image

1.5 JS 的组成

image
1.5.1 ECMAScript

ECMAScript 是由ECMA 国际( 原欧洲计算机制造商协会)进行标准化的一门编程语言,这种语言在万维网上应用广泛,它往往被称为 JavaScript或 JScript,但实际上后两者是 ECMAScript 语言的实现和扩展。

image

ECMAScript:规定了JS的编程语法和基础核心知识,是所有浏览器厂商共同遵守的一套JS语法工业标准。

1.5.2 DOM——文档对象模型

文档对象模型(DocumentObject Model,简称DOM),是W3C组织推荐的处理可扩展标记语言的标准编程接口。通过 DOM 提供的接口可以对页面上的各种元素进行操作(大小、位置、颜色等)

1.5.3 BOM——浏览器对象模型

浏览器对象模型(Browser Object Model,简称BOM) 是指浏览器对象模型,它提供了独立于内容的、可以与浏览器窗口进行互动的对象结构。通过BOM可以操作浏览器窗口,比如弹出框、控制浏览器跳转、获取分辨率等。

1.6 JS 初体验

JS 有3种书写位置,分别为行内、内嵌和外部。

  1. 行内式
<input type="button" value="点我试试" onclick="alert('Hello World')" />

  • 注意单双引号的使用:在HTML中我们推荐使用双引号, JS 中我们推荐使用单引号
  1. 内嵌式
  <script>
      alert('Hello  World~!');
  </script>

  1. 外部JS文件
   <script src="my.js"></script>

  • 利于HTML页面代码结构化,把大段 JS代码独立到 HTML 页面之外,既美观,也方便文件级别的复用

二、JavaScript输入输出语句

为了方便信息的输入输出,JS中提供了一些输入输出语句,其常用的语句如下:

方法 说明 归属
alert(msg) 浏览器弹出警示框 浏览器
console.log(msg) 浏览器控制台打印输出信息 浏览器
prompt(info) 浏览器弹出输入框,用户可以输入 浏览器

三、变量的概念

1.1 什么是变量

变量是用于存放数据的容器。 我们通过 变量名 获取数据,甚至数据可以修改。

image

2.2 变量在内存中的存储

本质:变量是程序在内存中申请的一块用来存放数据的空间。类似酒店的房间,必须先申请了才能住人,因此一个房间就可以看做是一个变量。 我们通过【房间号】来查找到里面的内容。

image

四、变量的使用

1 声明变量

//  声明变量  
let age; //  声明一个 名称为age 的变量     

  • let 是一个 JS关键字,用来声明变量( variable 是可变变量的意思 )。使用该关键字声明变量后,计算机会自动为变量分配内存空间,不需要程序员管

  • age 是程序员定义的变量名,我们要通过变量名来访问内存中分配的空间

2.赋值

age = 10; // 给 age  这个变量赋值为 10          

  • = 用来把右边的值赋给左边的变量空间中,此处代表赋值的意思
  • 变量值是程序员保存到变量空间里的值

3 变量的初始化

let age  = 18;  // 声明变量同时赋值为 18

声明一个变量并赋值, 我们称之为变量的初始化

4 变量语法扩展

  • 更新变量

一个变量被重新复赋值后,它原有的值就会被覆盖,变量值将以最后一次赋的值为准。

let age = 18;

age = 81;   // 最后的结果就是81因为18 被覆盖掉了          

  • 声明变量特殊情况

    情况 说明 结果
    lat age ; console.log (age); 只声明 不赋值 undefined
    console.log(age) 不声明 不赋值 直接使用 报错 is not defined
    age = 10; console.log (age); 不声明 只赋值 10

最好的写法:声明并赋值

5 变量命名规范

规则:

  • 由字母(A-Za-z)、数字(0-9)、下划线(_)、美元符号( $ )组成,如:usrAge, num01, _name

  • 严格区分大小写。let app; 和 let App; 是两个变量

  • 不能 以数字开头。 18age 是错误的

  • 不能 是关键字、保留字。例如:let、for、while(name虽然不是关键字但尽量不要用)

  • 变量名必须有意义。 MMD BBD nl → age

  • 遵守驼峰命名法。首字母小写,后面单词的首字母需要大写。myFirstName

    image

五、数据类型

数据类型简介

  • 变量的数据类型

变量是用来存储值数据的所在处,它们有名字和数据类型。变量的数据类型决定了如何将代表这些值的位存储到计算机的内存中。JavaScript是一种弱类型或者说动态语言。这意味着不用提前声明变量的类型,在程序运行过程中,类型会被自动确定:

let age = 10;        // 这是一个数字型
let areYouOk = '是的';   // 这是一个字符串     

在代码运行时,变量的数据类型是由 JS引擎根据 = 右边变量值的数据类型来判断的,运行完毕之后, 变量就确定了数据类型。JavaScript 拥有动态类型,同时也意味着相同的变量可用作不同的类型:

let  x = 6;           // x 为数字
let  x = "Bill";      // x 为字符串    

  • 数据类型:JS 把数据类型分为两类:

    • 简单数据类型 (Number,String,Boolean,Undefined,Null)

    • 复杂数据类型 (object)

简单数据类型

简单数据类型(基本数据类型)

JavaScript 中的简单数据类型及其说明如下:

image
  1. 数字型 Number

JavaScript 数字类型既可以保存整数,也可以保存小数(浮点数)。

let  age = 21;       // 整数
let  Age = 21.3747;  // 小数     

*   NaN ,Not a number,代表一个非数值(可以用来**isNaN(is Not a Number【是非数字】**)判断一个变量是否为非数字的类型,返回 true 或者 false)
image
let  usrAge = 21;
let  isOk = isNaN(userAge);  //
console.log(isNum);          // false ,21 不是一个非数字
let  usrName = "andy";
console.log(isNaN(userName));// true ,"andy"是一个非数字

2.字符串型 String

字符串型可以是引号中的任意文本,其语法为 双引号 "" 和 单引号''(推荐单引号''

因为 HTML 标签里面的属性使用的是双引号,JS 这里我们更推荐使用单引号。

  1. 字符串引号嵌套

    JS 可以用单引号嵌套双引号 ,或者用双引号嵌套单引号 (外双内单,外单内双)

    let strMsg = '我是"高帅富"程序猿';   // 可以用''包含""
    let strMsg2 = "我是'高帅富'程序猿";  // 也可以用"" 包含''
    //  常见错误
    var badQuotes = 'What on earth?"; // 报错,不能 单双引号搭配
    
    
  2. 字符串转义符

    类似HTML里面的特殊字符,字符串中也有特殊字符,我们称之为转义符。转义符都是 \ 开头的,常用的转义符及其说明如下:

    转义符 解释说明
    \n 换行符,n 是 newline 的意思
    \ \ 斜杠 \
    \t tab 缩进
    \b 空格 ,b 是 blank 的意思
  3. 字符串拼接

    • 字符串 + 任何类型 = 拼接之后的新字符串

    • 拼接前会把与字符串相加的任何类型转成字符串,再拼接成一个新的字符串

      //1.1 字符串 "相加"
      console.log('hello' + ' ' + 'world'); // hello world
      //1.2 数值字符串 "相加"
      console.log('100' + '100'); // 100100
      //1.3 数值字符串 + 数值
      console.log('11' + 12);     // 1112 
      
      
      • + 号总结口诀:数值相加 ,字符相连
  • 布尔型Boolean

    布尔类型有两个值:true 和 false ,其中 true 表示真(对),而 false 表示假(错)。

    布尔型和数字型相加的时候, true 的值为 1 ,false 的值为 0。

    console.log(true + 1);  // 2
    console.log(false + 1); // 1
    
    
  • Undefined和 Null

    一个声明后没有被赋值的变量会有一个默认值undefined,未定义数据类型 ( 如果进行相连或者相加时,注意结果)

    var variable;
    console.log(variable);           // undefined
    console.log('你好' + variable);  // 你好undefined
    console.log(11 + variable);     // NaN
    console.log(true + variable);   //  NaN
    
    

    一个声明变量给 null 值,里面存的值为空(学习对象时,我们继续研究null)

    var vari = null;
    console.log('你好' + vari);  // 你好null
    console.log(11 + vari);     // 11
    console.log(true + vari);   //  1
    
    

五 获取变量数据类型

image

1.数据类型转换

使用表单、prompt 获取过来的数据默认是字符串类型的,此时就不能直接简单的进行加法运算,而需要转换变量的数据类型。通俗来说,就是把一种数据类型的变量转换成另一种数据类型,通常会实现3种方式的转换:

  • 转换为字符串
image
  1. toString() 和 String() 使用方式不一样。num.toString()String(num)
  2. 三种转换方式,第三种加号拼接字符串转换方式使用较多, 这种方式也称之为隐式转换
  • 转换为数字型(重点)
image
parseInt('3.14'); //3
parseInt('3.92'); //3
parseInt('120px') //120

  1. 使用parseInt要转的字符串有小数,它会向下取整,如果有跟在数字后面的字母单位字,它会去掉单位,还有这个字符串不能以字母开头。
    parseFloat也会把单位去掉。(重点运用)
  2. 隐式转换是我们在进行算数运算的时候,JS自动转换了数据类型
console.log('12' - 0); //12
console.log('123' - '120'); //3
console.log('33' * 1); //33

  • 转换为布尔型
image
  • 代表空、否定的值会被转换为 false ,如 ''、0、NaN、null、undefined

  • 其余值都会被转换为 true

    console.log(Boolean('')); // false
    console.log(Boolean(0)); // false
    console.log(Boolean(NaN)); // false
    console.log(Boolean(null)); // false
    console.log(Boolean(undefined)); // false
    console.log(Boolean('小白')); // true
    console.log(Boolean(12)); // true
    
    
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容