JS初始第一周

# JS简介

## JS是什么

js是运行在客户端(浏览器)的编程语言,实现人机交互的效果

css与HTML是标记语言

## JS作用

  - 网页特效(监听用户的一些行为让网页做出对应的反馈)

  - 表单验证(针对表单数据的合法性进行判断)

  - 数据交互(获取后台的数据,渲染到前端)

  - 服务端编程(node.js)

## JS组成

ECMAScript 和 Web APis(由DOM和BOM组成) 组成

ECMAScript:

规定了js基础语法的核心知识

 eg: 变量、分支语句、循环语句、对象等

Web APis:

DOM:操作文件,比如对页面元素进行移动、大小。添加删除等操作

BOM:操作浏览器,比如页面弹窗,检测窗口宽度、储存数据到浏览器等等

## JS书写位置

1. 内部JS

  直接卸载html文件中,用script标签包住

  规范: script标签写在</body>上面

  拓展:alert('你好,js') 页面弹出警示对话框

2. 外部JS

  代码写而在以.js结尾的文件里

  语法: 通过script标签,引入到HTML页面中

  注意: 在script标签内部不要写代码,否则会被忽略!

3. 内联JS

  代码写在标签内部

  语法:此处作为了解即可,但是在后面vue框架会用到这种模式

# JS注释和结束符

## 注释

1. // 单行注释 ctrl + /

2. /* */  多行注释 shift + alt + a

## 结束符

以英文的;表示语句的结束

实际情况: 在开发中,可写可不写,浏览器会自动推断语句的结束位置

现状: 越来越多人主张在书写JavaScript代码时省略结束符

约定: 为了统一风格,结束要么每句都写,要么每句都不写(按照团队要求)

# JS语法

## JS输出语法


 

语法1:

doument.write('要输出的内容')

作用: 向body内输出的内容

注意:如果输出的内容写的是标签,也会被解析为网页内容

语法2:

alert('要输出的内容')

作用: 页面弹出警示对话框

语法3:

console.log('控制台打印')

作用:控制台输出语法,程序员调试使用


 

## 输入语法

语法:

prompt('请输入您的姓名:')

作用:显示一个对话框,对话框中包含一条文字信息,用来提示用户输入文字

## JavaScript 代码执行顺序

- 按HTML文档流顺序执行JavaScript代码

- alert() 和 prompt()他们会跳过页面渲染先被执行

# 字面量

在计算机科学中,字面量实在计算机中描述 事 / 物

比如: 1000为数字字面量

'黑马程序员'字符串字面量

[]数组字面量 {}对象字面量 等等

# JS变量

## 变量

变量就是计算机中用来储存数据的"容器",它可以让计算机变得有记忆

注意:变量不是数据本身,它们仅是一个用来储存数据的容器

## 变量如何声明

想要使用变量,首先要创建变量

语法:

  let 变量名

  声明变量有两部分组成: 声明关键字,变量名

  let即关键字(let:允许

,许可,让),所谓关键字是系统提供的专门用来当声明变量的词语

## 更新变量

变量赋值后,还可以通过简单的给他一个不同的值来更新它

注意:let不允许多次声明同一个变量

声明多个变量中间用逗号隔开(不推荐该方法)

## 变量的本质

是程序在内存中申请的一块用来存放数据的小空间


 

## 变量的规则与规范

1. 规则:

  不能用关键字

  只能由数字,字母,下划线,$组成,且不能以数字开头

  字母严格区分大小写

2. 规范

  起名要有意义

  遵循小驼峰命名法:第一个单词首字母小写,后面的每个单词首字母大写

## let和var区别

在较旧的JavaScript,使用关键字var来声明变量,而不是let

let为了解决var的一些问题

var 声明

  可以先使用 再声明(不合理)

  var 声明过的变量可以重复声明(不合理)

  比如变量提升、全局变量、没有块级作用域等等

# 数组的基本使用

数组声明:

let arr = ['刘德华', '易顺轩','张文愚']

汉字一定要加单引号

数组是有序的

使用数组:

数组名[索引号] 从0开始

length属性可以获得数组的长度

  eg:  console.log(arr.length)


 

# 常量

概念: 使用const声明的变量称为常量

使用场景:当某个变量永远不变时,就用const声明,而不是let

注意: 常量不允许重新赋值,声明的时候必须赋值(初始化)

小技巧: 不需要重新赋值的数据使用const



 

# 数据类型

js是弱数字类型语言,只有当我们赋值了,才知道其数据类型

## 基本数据类型


 

### number 数字型

 整数 浮点数 字符串

 算术运算符:

 + - * / %

 % 意思是取模  用于判断一个数能否被整除

 优先级相同时从左到右运算


 

### string 字符串型

通过单引号、双引号、或反引号(`)包裹的数据叫字符串,单引号与双引号本质上没有区别,推荐使用单引号

1. 数字用单引号包裹起来就是字符串类型

2. 单引号/双引号可以相互嵌套,但是不可以自己与自己嵌套(口诀:外单内双,外双内单)

3. 必要时可以使用转义字符\,输出单引号或双引号

字符串拼接:

场景: + 运算符 可以实现字符串的拼接

口诀: 数字相加,字符相连

eg: document.write('我叫' + '刘德华') //我叫刘德华

    let uname = '刘德华'

    let song = '忘情水'

    document.write(uname + song)  //刘德华忘情水

    只要加号两边有一个为字符串,都可以进行字符串的拼接

eg: let age = 18

    document.write('我今年' + age)  //我今年18

模板字符串:

  使用场景:

            1. 拼接字符串和变量

            2. 在没有它之前拼接比较麻烦

  语法:

        1. ``(反引号)

        2. 在英文输入模式下按键盘的tab上方哪个键

        3. 内容拼接变量时,用${}包住变量


 

### boolean 布尔类型

true false   布尔型字面量

### undefined 未定义型

只有一个值 undefined

声明一个变量未赋值就是 undefined

### null 空类型

表示 "无" "未知" "空"

null 和 undefined 的区别

undefined 表示没有赋值

null 表示赋值了,但是内容为空

计算有区别: console.log(undefined + 1)  //NaN

            console.log(null + 1)    //1

null 的使用场景:

官方解释: 把null作为尚未创建的 对象

大白话: 将来有个变量里面存放一个对象,但是对象还没创建好,可以先给的null


 

注:

  NaN 代表一个错误/它是一个不正确的或者一个未定义的数学操作所得的结果

eg: console.log('老师' - 2)  //NaN

  NaN是粘性的。任何NaN的操作都返回NaN

  eg: console.log(NaN - 2)  //NaN


 

## 引用数据类型

object 对象


 

## 监测数据类型

通过typeof关键字检测数据类型

typeof运算符可以返回被检测的数据类型。它支持两种语法形式:

1. 作为运算符: typeof x (常用的写法)

2. 函数形式: typeof (x)

换言之,右括号和没括号,得到的结果是一样的,所以我们直接用运算符的写法

# 数据类型转换

JavaScript是弱数据类型:JavaScript也不知道变量到底属于什么数据类型,就只有赋值了才清楚

坑:使用表单、prompt获取来的数据默认为字符串数据类型,此时就不能直接简单的进行加法运算

eg: console.log('10000' + '2000') //100002000

类型转换: 把一种数据类型的变量转换为我们所需要的数据类型

## 隐式转换

某些运算符被执行时,系统会自动地将数据类型转换,这种转换叫做隐式转换

规则:

 1. +号两边只要有一个是字符串,都会把另外一个转换为字符串

 2. 除了+以外的算术运算符 比如 - * /等都会把数据转化为数字类型

缺点:

    转换类型不明确,靠经验才能总结

小技巧:

    +号作为正号解析可以转换成数字型 eg: +'123'  //123(此时为数字型)

    任何数据和字符串相加的结果都是字符串

## 显示转换

## 转换为数字型

  Number()

1. 转换为数字型

2. 如果字符串内容里有非数字,转换失败时结果为NaN(Not a Number)即不是一个数字

3. NaN也是number类型的数据,代表非数字

  parseInt(数据)

  只保留整数

  eg: parseInt('12px')  //12

      parseInt('12.34')  //12

      parseInt('abc12.34px')  //NaN

  parseFloat(数据)

  可以保留小数

    eg: parseInt('12px')  //12

      parseInt('12.34px')  //12.34

      parseInt('abc12.34px')  //NaN

# 运算符

## 赋值运算符

对变量进行赋值的运算符

=    将等号右边的赋值给等号左边,要求左边必须是个容器

其他赋值运算符:

+=   -=  *=  /=  %=(该类运算符会将右边的值加在左边上并将之赋给左边变量)

## 一元运算符

只有一个操作数

自增运算符

++ 分为前置自增和后置

自减运算符

--  分为前置自减和后置自减

 前置先运算后使用,后置先使用后自加

 前置与后置再单独使用时没有差异

 ## 比较运算符

 == 左右两边值是否相等

 === 左右两边是否数据类型和值都相等  (常用)

 !== 左右两边是否不全等

 比较运算符有隐式转换,把'2' 转换为 2 (转换为Number型)

 NaN不等于任何值,包括自己

 字符串也可以比较(了解即可)

 比较字符串是比较对应的ASCLL

  规则:

  1. 从左往右依次比较

  2. 如果第一位一样,在比较第二位,以此类推

重点:比较运算符返回的结果是  true 或者 false

## 逻辑运算符

应用场景: 解决多重的运算条件

&& 逻辑与  一假则假

|| 逻辑或  一真则真

!  逻辑非  取反

## 运算符的优先级

1 小括号  ()

2 一元运算符  ++ -- !

3 算术运算符 先 * / % 后 + -

4 关系运算符 > >= < <=

5 相等运算符  == != === !==

6 逻辑运算符  先 && 后 ||  (重点注意)

7 赋值运算符  =

8 逗号运算符  ,


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值