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
    
    
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容