05_JavaScript

一、认识JavaScript

1.JavaScript是由Netscape公司 (网景

)的Livescript发展而来,js是一种基于对象(object)和事件驱动的安全性脚本语言 利用js可以完成:

  • 响应事件:页面加载完成或者点击某天元素时,调用指定的js程序

  • 读写HTML元素:JS可以读取及改变当前页面内的某个元素的内容

  • 验证用户输入的数据

  • 检测访问者的浏览器:根据所检测到的浏览器,为这个浏览器载入相应的页面

  • 创建cookies:存储和取回位于访问者的计算机中的信息

  1. JS的作用是给浏览器指令(命令),负责和浏览器进行沟通的

  2. 计算机语言的发展史:

  • 阶段一 : 计算机语言 0101

  • 阶段二 : 汇编语言 ,用符合来来代替0101(mov/add)

  • 阶段三:高级语言 ,接近自然语言 c 、c++、 c# 、 java、 OC 、python、 go\ swift、 Dart、 JS 、TypeScript

二、 JavaScript的历史

  1. 诞生背景:1995网景公司 EIC和,Scheme发明了JavaScript

  2. 微软: Jsscript

  3. 1996年网景公司向ECMA(欧洲计算机制造商协会)提交了提案 ,ECMA指定这门语言为标准

  4. 1997年ECMA指定标准 ECMAScript

  5. JavaScript 只是ECMA一种实现

  6. JavaScript:Javascript + DOM + Bom

三、 JavaScript的特点

  • 解释性语言

    • 读取一行 解释一行 ,执行一行
  • 动态类型语言

    • 在运行阶段可以动态修改变量类型的类型
  • js是一种脚本编写语言,采用小程序段的方式实现,开发过程简单

  • js是一种基于对象的语言,能运用已经创建的对象

  • js是一种基于Java基本语句的控制流之上的简单而紧凑的设计语言

  • js是动态的,可以直接对用户的输入作出响应,无需经过web服务程序

  • js是安全性语言

  • js具有跨平台性

四、JavaScript编写位置

  • 内联 行内 HTML元素中

  • script 标签里

  • 外部引用 js

五、JavaScript注释使用

  • 单行 多行 文档注释

/*

*/

/*

*/带解释的注释

六、 和浏览器交互

  • alert

  • Console.log

  • Document.write()

  • prompt

七 、如何定义变量

  1. 常量变量
  • 常量 :不可改变

  • 变量:由字母、数字、下划线组成,以字母开头,除此之外不能有空格和其他符号 ,不能使用关键字

  • 变量的使用

    <pre mdtype="fences" cid="n304" lang="html" spellcheck="false" class="md-fences md-end-block ty-contain-cm modeLoaded" style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-size: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; padding: 8px 4px 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; background-position: inherit; background-repeat: inherit;"><!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    </head>
    <body>

    <script>
    // (1)交换方式一 使用临时变量
    // var a = 1;
    // var b = 2;
    // var temp = 0;

    // temp = a;
    // a = b;
    // b = temp;
    // console.log(a,b,temp)

    // (2)交换方式2 只针对数字

    var a = 1;
    var b = 2;

    // a = 3
    a = a + b;
    // b = 3-2 = 1
    b = a - b;
    // a = a - b = 3 - 1 = 2
    a = a - b;
    console.log("a="+a,"b="+b)

 </script>
</body>
</html></pre>
  1. 循环

    • for

    • Switch

    • while

      Break 终止包含for、Switch、while,当遇到break语句的时候,会退出循环并执行下一条语句

      continue :在循环体结构中 提前结束本次循环周期并开始下一个循环周期,停止当前循环的迭代,从循环的开始处继续程序流程

  2. JS中的事件

    • onClick 点击事件

    • onChange 表单相关 利用 text 或者textarea输入的字符值改变发生的事件

    • onSelect事件: 当文本框内容被选中时发生的事件

    • onFocus事件 :当单击表单对象时

    • onLoad事件:当加载网页文档时,会产生该事件。onLoad 事件的作用是在首次载入一个页面文件时检测cookie,并用一个变量为其赋值,使其可以被源代码使用

    • onUnload 事件:退出网页

    • onBlur事件:失去焦点正好和获取焦点对立,当text,textarea或者select对象不再拥有焦点而退到后台时;

    • onMouseOver事件 鼠标指针移动到某对象范围的上方时触发的事件

    • onMouseOut 鼠标指针离开某对象范围时

    • onDblClick 鼠标双击

    • onmousedown 鼠标按下

    • onmouseup 鼠标按下后松开

    • Onmousemove 鼠标移动

    • onKeypress 当键盘上某个键被按下并且释放时触发

    • Onkeydown 键盘上某个按键 按下

    • Onkeyup 键盘某个按键被松开

    • Onabort 图片在下载时被用户中断

    • onmove 浏览器的窗口被移动时触发

    • Onscroll 浏览器的滚动条位置发生变化

    • Onstop 浏览器的停止按钮按下或者正在下载的文件被中断

    • Onreset 当表单中的reset属性被激发

    • Onsubmit 表单提交信息时

  3. 内部对象

    浏览器内部对象,可以实现与HTML文档进行交互,主要包括:

    • 浏览器对象 (navigator) :浏览信息

    • 文档对象(document):document对象包含了与文档元素一起工作的对象

      • anchorm锚对象:指 a标签中存在时产生的对象,办好文档中所有的anchor 信息

      • link链接对象:使用 a标签标记超链接一个超文本或者超媒体的元素作为一个特定的URL

      • form窗体对象:包含多种格式的对象存储信息,可以在js脚本中编写程序,并可以用来动态改变文档的行为

    • 窗口对象(windows):提供处理浏览器窗口的方法和属性

    • 位置对象(location):提供了当前打开的URL一起工作的方法和属性,是一个静态对象

    • 历史对象(history)历史清单有关

八、基础数据类型

JS中常见的基本数据类型

  • 数值型(Number):

    • NaN 不是数字类型
  • 字符串型(String)

  • 布尔型(Boolean)

  • 空类型(Null) : null 通常当一个对象(object类型)不再使用的时候 ,可以赋值为null

    <pre mdtype="fences" cid="n333" lang="htm" spellcheck="false" class="md-fences md-end-block ty-contain-cm modeLoaded" style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-size: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; padding: 8px 4px 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; background-position: inherit; background-repeat: inherit;">var info = {"name"="aaa","age" = 18}
    info = null </pre>

  • 未定义类型(Undefined) : 未定义当一个变量进行了声明,但是没有赋值,这个时候她的值就是undefined

image.png

我们编写的代码在硬盘,打开代码后 ,加载到浏览器 , 放在内存中 ,如果是基本数据类型 就是在栈空间申请空间 ,指针指向这段 ,如果是对象类型 ,则是在堆空间申请一块空间

num++ :先使用 后自增+1

++num: 先自增+1,后使用

九、数据类型的转换

其他类型转换成数字类型

9.1 转成数字类型

  • Number(其他类型) 把其他类型转为数字类型

  • parseInt(string,radix) 字符串转化为 Number类型 找到一个数字就解析一个数字 并返回; radix 基数 进制

  • parseFloat(string) 字符串转为 Number类型

JS数字类型:Number类型

9.2 转成字符串

  • toString() num 和bool类型可以 . Unll 和undefined不可以

  • Sting() 所有类型

  • 字符串拼接

9.3 转成布尔类型

  • 使用Boolean()函数把其他类型转成布尔类型

    • 转换成false 的5种 特殊值: “” 空字符串、 0(包括0、-0) 、 undefined 、 unll 、 NaN;

    • 除啦上五种 ,其他为true

十 、JavaScript操作符

  1. 算数运算符:

    • /

    • %

    • ++

      • 前置和后置 ++a 先自增+1 后使用 , a++ 先使用后自增+1
    • --

      • 前置和后置
  2. 赋值运算符 :

    • =

    • +=

    • -=

    • *=

    • /=

    • %=

  3. 比较运算符:

    • <

    • =

    • <=

    • == 会隐式转换

    • !=

    • === 全等 不会隐式转换

    • !== 全不等

    == != 判断会有隐式转换

    <pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="" cid="n559" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-size: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; padding: 8px 4px 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; background-position: inherit; background-repeat: inherit;"> var a = true;
    var b = "true";
    // 隐式转换: 都转换成number再比较
    // a -> 1
    // b -> NaN
    console.log(a == b); //false</pre>

    === 全等 类型 相等 ,数据相等 !==不会进行隐式转换

    1. 逻辑运算符

      • && 逻辑与

      • || 逻辑或

      • !非运算(取反)

    2. 运算符的优先级

十一、 分支语句

  • if

  • if else

  • If else if else

  • switch case break (穿透)

十二、 循环

  • while

  • do while

  • for

十三、 DOM 节点

D(document 文档) O(obgect 对象) M(Model 模型)

常用的DOM方法:

  • getElementById

  • getElementByTagName

  • getElementsByClassName

  • Get-Attribute 和setAttribute

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