JavaScript -入门(初阶一)

本文是JavaScript入门教程的第一部分,涵盖了JavaScript的基础知识,包括JavaScript简介、变量、数组、基本数据类型、运算符和语句。介绍了如何声明、赋值和更新变量,数组的使用,数据类型如Number、String、Boolean、undefined和null,以及控制台输出和类型转换。还讨论了赋值、比较、逻辑和运算符优先级,并简要提及了分支语句(if和switch)。
摘要由CSDN通过智能技术生成

目录

目录

JavaScript简介

1.JavaScirpt是什么?

2.JavaScript组成是什么?

3.JavaScript 书写位置

4.JavaScript 注释

5.输入和输出语法

变量​​​​​​​

1.声明变量

2. 变量赋值

3. 更新变量

4. 声明多个变量

数组​​​​​​​

1.取值语法

2.访问数组

 3.数组的专业术语

 4.数组的长度

  模板字符串

常量

基本数据类型

1.数据类型 – 数字类型(Number)

2.数据类型 – 字符串类型(string)

3.数据类型 – 布尔类型(boolean)

4.数据类型 – 未定义类型(undefined)

5.数据类型 – null(空类型)

控制台输出语句和检测数据类型

类型转换

          隐式转换

          显式转换

           银行卡余额案例(简易的)

运算符

赋值运算符​​​​​​​

比较运算符​​​​​​​​​​​​​​

逻辑运算符

运算符优先级

语句

表达式和语句 

 分支语句

if语句 

三元运算符

switch语句

while 循环


JavaScript简介

1.JavaScirpt是什么?

JavaScirpt是一种运行在浏览器的编程语言,可以实现人机交互的效果。

作用:

网页特效(监听用户的行为让浏览器做出反馈)

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

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

服务端编程 (node.js)

2.JavaScript组成是什么?

ECMAScript,web APIs(Dom,Bom)

3.JavaScript 书写位置

1.内部引入样式

直接写在html文件中 用<script></script>包裹住

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

2.外部引入样式

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

通过<script src="文件路径"></script>引入

3.行内引入样式

代码写在标签内部

4.JavaScript 注释

//单行注释 ctrl+/

/* 多行注释    shift+ait+a

多行注释

多行注释*/

5.输入和输出语法

输出语法:

1.document.write('要出的内容')   向body内输出内容

2.console.log('控制台打印') F12 点console查看

3.alert('要出的内容')  页面弹出警告对话框

输入语法 :

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

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

JavaScript 代码执行顺序:

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

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

变量

变量是什么?

变量就是一个存储数据的容器    用白话来说   变量就是一个用来装东西的盒子

生活中常见的一些变量比如(教室,水杯,箱子)

1.声明变量

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

声明变量由两部分组成:声明关键字(let)和变量名

let age 

声明了一个名为age 的变量 

2. 变量赋值

定义了一个变量后,就能够初始化它(赋值)  在变量名后跟上一个"=",然后写上数值。

“=”被称为赋值运算符

let age = 18

声明了一个age 变量 ,里面存放了 18 这个数据。

3. 更新变量

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

//声明了一个age变量,同时里面存放了 18 这个数据
let age = 18
//变量里面的数据发生变化 改为19
age = 19 
//在页面输出的结果为19
document.write(age)



//声明了一个age变量,同时里面存放了 18 这个数据
let age = 18
//let不允许多次声明一个变量
let age = 19 
//会报错
document.write(age)

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

4. 声明多个变量

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

语法:多个变量中间用逗号隔开。

//说明:看上去代码长度更短,但并不推荐这样。为了更好的可读性,请一行只声明一个变量
let age = 18, uname = “宇智波带土”

//多行变量声明有点长  但是有更好的可读性
let age = 18,
let uname = “宇智波鼬”

数组

数组的基本使用

1.取值语法

数组名[下标]

通过下标取数据 

取出来是什么类型的,就根据这种类型特点来访问

let arr = ['旗木卡卡西','宇智波佐助','小樱','漩涡鸣人']
console.log(arr)

2.访问数组

 /* 访问数据 数组名[下标] 或 数组名[索引] 从0开始 */
    console.log(arr[3])
    console.log(arr[1])
    console.log(arr[4])

 3.数组的专业术语

    元素 :数组中保存的每个数据都叫数组元素

    下标 :数组中的数据编号

    长度 :数组中数据的个数

 4.数组的长度

 数组名.length

    //  数组的长度 = 索引号 + 1

    // 索引号从 0 开始

    // 数组的长度从 1 开始

    console.log(arr.length) // 5

  模板字符串

拼接字符串和变量

    // 模板字符串
    // 外面用`` 里面 ${变量名}
    /*   let age = 40
      document.write(`我今年${age}岁了`) */
    let username = prompt('请输入姓名')
    let age = prompt('请输入年龄')
    document.write(`大家好,我叫${username},我今年贵庚${age}岁了`)

常量

  // 使用const声明的变量为常量
   // 常量  关键字 使用const 来声明
    const PI = 3.14
   // 常量 不允许更改值
    // PI = 3.15 // Uncaught TypeError: Assignment to constant variable.
    console.log(PI)
    // 常量声明的时候必须赋值
    // const Age

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

变量值也不能修改

基本数据类型

1.数据类型 – 数字类型(Number)

数字可以有很多操作。

比如,乘法 * 、除法 / 、加法 + 、减法 - 等等,所以经常和算术运算符一起。 数学运算符也叫算术运算符,主要包括加、减、乘、除、取余(求模)。

 +:求和

 -:求差

  *:求积

 /:求商

 %:取模(取余数    开发中经常作为某个数字是否被整除)

执行优先级同小学算术相同

先乘除后加减 有括号先算括号里面的

NAN(not a number)

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

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

console.log('老师' + 2 )//NaN   老师是字符串 不能和 2 做运算
console.log(NaN + 2 ) //NaN 

2.数据类型 – 字符串类型(string)

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


    //数据类型  字符串 String 推荐使用单引号定义字符串
    let str = '旗木卡卡西'
    let str1 = "19" // 字符串19 
    // 反引号
    let str2 = `宇智波鼬`
    // 空字符串
    let str3 = ''
    // 获取字符串的长度 变量名.length
    console.log(str2.length) // 4
    // 单引号 双引号可以互相嵌套 规则: 外双内单 外单内双
    // console.log('宇智波鼬''很帅') // 报错
    console.log('宇智波鼬"很帅"') // 正确 
    //必要时可以使用转义符 \,输出单引号或双引号
    console.log('宇智波鼬\'很帅\'') // 正确
    console.log('宇智波鼬`很帅`') // 正确
    console.log('--------------')
    // 字符串拼接 + 
    // 数字相加 字符相连
    console.log(1 + 4) // 5 
    console.log('宇智波' + '鼬') // 宇智波鼬
    console.log('我叫' + 'Yuki') // 我叫Yuki
    console.log('10' + 10) // 1010
    let age = 30
    // 我今年30岁了
    console.log('我今年' + age + '岁了')

3.数据类型 – 布尔类型(boolean)

表示肯定或否定时在计算机中对应的是布尔类型数据。

它有两个固定的值 true 和 false,表示肯定的数据用 true(真),表示否定的数据用 false(假)

let isCool = true
console.log(isCool) // true

4.数据类型 – 未定义类型(undefined)

未定义是比较特殊的类型,只有一个值 undefined。

什么情况出现未定义类型?

只声明变量,不赋值的情况下,变量的默认值为 undefined,一般很少直接为某个变量赋值为 undefined。

let name //声明了变量但是未赋值
document.write(name) //输出undefined

5.数据类型 – null(空类型)

let obj = null 
console.log(obj) // null

null 和 undefined 区别: undefined 表示没有赋值 ,null 表示赋值了,但是内容为空

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

控制台输出语句和检测数据类型

 // 检测变量的数据类型 typeof()
    // 1 运算符的写法 typeof 变量名(推荐写法)
    // 函数形式 typeof(变量名)
    let num = 20
    console.log(typeof num) // number
    let str = 'yuki'
    console.log(typeof (str)) // string
    let bool = true
    console.log(typeof bool) // boolean
    let age
    console.log(typeof age) // undefined 
    let obj = null
    console.log(typeof null) // object
    // 为什么检测null得到的数据类型是object?是由于js底侧语言设计缺陷所导致的,后面有专门的人员 
    来提供修复此bug,但是被js官方无情的拒绝.
    let num1 = prompt('请您输入数字')
    console.log(typeof num1) // string

类型转换

1.隐式转换

某些运算符被执行时,系统内部自动将数据类型进行转换,这种转换称为隐式转换。

规则:

+号作为正号解析可以转换成数字型 

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

  console.log(1 + 1) // 2
  console.log('宇智波鼬' + 3) // 宇智波鼬3
  console.log(5 + '宇智波鼬') // 5宇智波鼬
  console.log('5' + 5) // 55
  // 隐式转换
  console.log('5' - 5) // 0
  console.log('6' * 5) // 30 
  console.log('8' / 4) // 2
  console.log(typeof (+'123'))//number 转换为数字型
  // 任何数据类型和字符串相加得到的结果就是字符串

显式转换

转换成数字型

1.Number(数据)

转成数字类型

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

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

2.parseInt(数据)

保留整数

3.parseFloat(数据)

可以保留小数

转换为字符型

String(数据)

变量.toString(进制)

银行卡余额案例(简易的)

<!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>
  <style>
    h2 {
      text-align: center;
    }

    table,
    th,
    td {
      margin: 0 auto;
      padding: 5px 30px;
      border-collapse: collapse;
      border: 1px solid #000;
      text-align: center;
    }
  </style>
</head>

<body>
  <h2>银行卡余额案例</h2>
  
</body>

</html>
  <script>
    // 1.定义银行卡总额 电费 水费 网费。    
    let total = +prompt("请输入银行卡总额")
    let electricity = +prompt("请输入电费")
    let water = +prompt("请输入水费")
    let internet = +prompt("请输入网费")
    // 2.算出余额 余额等于 银行卡总额减电费加水费加网费。
    let balance = (total - electricity - water - internet)
    // console.log (total ,electricity , water, internet, balance)
    // 页面渲染
    document.write(` 
    <table>
    <tr>
      <th>银行卡总额</th>
      <th>电费</th>
      <th>水费</th>
      <th>网费</th>
      <th>余额</th>
    </tr>
    <td>${total}</td>
    <td>${electricity}</td>
    <td>${water}</td>
    <td>${internet}</td>
    <td>${balance}</td>
  </table>`)
  </script>

 

运算符

赋值运算符

对变量进行赋值的运算符

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

<
>
*=

/=

%=

<script>
//没有运算符时的写法
let i = 1
  i = i + 1
console.log(i) //结果是2


//使用+=运算符
let i = 1
i += 1 (相当于 i = i +1)
console.log(i) //结果是2
</script>

JavaScript 的运算符可以根据所需表达式的个数,分为一元运算符、二元运算符、三元运算符
 

//一元运算符
//只需要正负号(+、-) 自增或自减也属于一元运算符
//自增++:让变量的值+1
//自减++:让变量的值-1
//如
let num = 1
num++ //让num的值 加1  num+1
//前置自增 和后置自增 单独使用的时候没有区别 都是让变量的值+1
//每执行一次,让变量的值加1
//相当于 num += 1
//--------------------------------------------------------------
//前置自增和后置自增参与运算就有区别

let i = 1
console.log(++i + 2) //结果是4   
//参与运算时 i在前面 i先自加 1 + i =2 这时 i = 2 再进行运算 i + 2 = 4
console.log(i++ + 2) //结果是3  
//参与运算时 i在后面  先计算 i + 2 即 1 + 2 = 3  输出完毕后 i再自加变成2

比较运算符

     >         左边是否大于右边
      <         右边是否大于左边
     >=       左边是否大于等于右边
   <=       右边是否大于小于左边
     ==       左右两边的值是否相等
===      左右两变是否类型和值都相等
      !==       左右两边是否全等

=  == 和===的区别

=        赋值
==是判断 只要求值相等,不要求数据类型一样即可返回true
===是全等 要求值和数据类型都一样返回的才是true

比较结果:比较结果为boolean类型,即只会得到 true 或 false

1.字符串比较,是比较的字符对应的ASCII码

从左往右依次比较

2. NaN不等于任何值,包括它本身

3.不同类型之间比较会发生隐式转换

逻辑运算符

&&        并且符号两边都为ture 则返回true
||           或者符号两边只要有一变为true 则返回true
!            取反true变false  false变true

运算符优先级

优先级运算符顺序
1小括号        ()
2一元运算符++ -- !
3算术运算符先* / % 后+ -
4关系运算符> >= < <=
5相等运算符==   !=  ===  !==
6逻辑运算符先   && 后    ||
7赋值运算符=
8逗号运算符,

let a = 3 > 5 && 2 < 7 && 3 == 4
console.log(a); //false
let b = 3 <= 4 || 3 > 1 || 3 != 2 
console.log(b); //true
let c = 2 === "2"
console.log(c); //false
let d = !c || b && a  
console.log(d);//true

语句

表达式和语句


表达式:因为表达式可被求值,所以它可以写在赋值语句的右侧。
表达式 i = 3 + 4 
语句:而语句不一定有值,所以比如 alert() for和break 等语句就不能被用于赋值。
语句 alert() 弹出对话框 console.log() 控制台打印输出

  分支语句

以前写代码都是 解释一行 执行一行  这叫顺序结构

有的时候需要根据条件来选择执行代码  这叫分支结构

某段代码被重复执行 这叫循环结构

if语句 

if单分支

if(条件){

满足条件执行代码

}

括号内的条件为true时,进入大括号里执行代码

小括号内的结果若不是布尔类型时,会发生隐式转换转为布尔类型

--------------------------------------------------------------------------------------

if双分支

if(条件){

满足条件执行代码}

else { 

不满足条件执行代码

}

if多分支

if(条件1) {
  满足条件执行的代码1

} else if (条件2) {

满足条件执行的代码2

}else if (条件3) {

满足条件执行的代码3

}else if (条件4) {

满足条件执行的代码4

}else {

满足条件执行的代码n
}

先判断条件1,若满足条件1就执行代码1,其他不执行

若不满足则向下判断条件2,满足条件2执行代码2,其他不执行

若依然不满足继续往下判断,依次类推

若以上条件都不满足,执行else里的代码n

可以写N个条件

三元运算符

(判断条件) ? 满足条件执行的结果 : 不满足条件执行的结果

比如我们常见到的倒计时  利用三元运算符 补0 计算

   // 1.用户输入
    let num = prompt('请用户输入一个数')// 小于10进行补0 比如01 02 03 04
    // 2. 判断输出- 小于10才补0 不小于10直接是num
    num =num < 10 ? 0 + num : num
    console.log(num)

switch语句

switch(数据) {

case 值1:
代码1
break

case 值2:
代码2
break

case 值3:
代码3
break

case 值4:
代码4
break

default:
代码n
break
}
/* 找到跟小括号里数据全等的case值,并执行里面对应的代码
若不全等 则执行 default */
//switch case语句一般用于等值判断,不适合于区间判断
//switch case一般需要配合break关键字使用 没有break会造成case穿透

while 循环

While(循环条件){ 
要重复执行的代码(循环体)
}
//小括号的值必须为真 while大括号里代码执行完毕后不会跳出 它会一直执行到括号内条件不满足才跳出
//while循环需要具备三要素:1.变量初始值 2.终止条件(没有终止条件他就会一直循环) 3.变量更新
    

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值