JavaScript---day01

JS权威网址MDN Web Docsicon-default.png?t=O83Ahttps://developer.mozilla.org/zh-CN/

面向开发者的 Web 技术 | MDNicon-default.png?t=O83Ahttps://developer.mozilla.org/zh-CN/docs/Web

一.JavaScript介绍

1.1JavaScript是什么

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

注:HTML是一种标记语言

        2.作用:

  •         网页特效(监听用户的一些行为让网页做出对应的反馈)
  •         表单验证(针对表单数据的合法性进行判断)
  •         数据交换(获取后台的数据渲染到前端)
  •         服务端编程(node.js)

        3.组成

        ECMAScript

                规定了js的基础语法核心知识。比如:变量、分支语句、循环语句、对象等

        WEB APIs

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

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

1.2JavaScript怎么写

1.书写位置同CSS的位置一样,JavaScript的书写位置包括行内,内部和外部三种。

        内部:

<body>
<!--书写位置--内部  要放到HTML代码的最低端-->
<script>
    alert("努力,奋斗")
</script>
</body>

        外部:

<body>
<script src="hello.js"></script>
</body>
//hello.js的代码内容
alert("努力,奋斗")
console.log('你好')

  内联:

<body>
<button onclick="alert('逗你玩')">点击我即刻升仙</button>
</body>

2.注释: 单行注释//   快捷键ctrl+/

                多行注释/* */   快捷键 IDEA是ctrl+shift+/ 

3.结束语 使用英文的;表示语句结束。JavaScript一般都是看团队约定,要么都写要么都不写。

 1.3 JavaScript输入输出语法

1.输入

       prompt('请输入你的年龄')

2.输出

        A 向文档内容进行输出document.write()

                写内容document.write('你好~js')

                在里面加标签document.write('<h1>我是一级标题</h1>')

        B 警示窗弹出

                alert('你好,初升的太阳')

        C 控制台输出  

                 console.log('控制台输出')//可以直接打log

3. JavaScrip代码的执行顺序

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

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

 1.4 字面量

在计算机科学中,字面量(literal)是在计算机中描述事/物

        比如 工资1000  1000指的数字字面量

        '你好'   是字符串字面量

        [] 是数组字面量

        {} 是对象字面量等。

二.变量

2.1变量是什么

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

      注:变量不是数据本身,它们仅仅是一个用于存储数值的容器。可以理解为是一个个用来装东西的纸箱子。

变量: HTML标签,教师,宿舍等都属于变量

2.2变量的使用

2.2.1 变量的声明

声明变量: let 变量名

关键字 :let (var  已被淘汰)

标识符 : 变量名

2.2.2 变量的赋值

对变量进行初始化赋值,推荐在声明时就给变量赋值

我们可以通过变量名来获取变量里面的数据

2.2.3 更新变量

变量赋值后,还可以通过赋值运算符等给他一个不同的值来更新它

2.2.4  一次声明多个变量

多个变量中间用, 号隔开  (但是不提倡这种做法),不具有很好的可读性

2.3变量的本质

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

(内存:计算机中存储数据的地方,相当于一个空间)

我们可以通过变量名来找到数据所在的这片空间,所有变量名也叫标识符

2.4变量命名的规范与规则

规则:

  • 不能用关键字

        (有特殊含义的字符,JavaScript 内置的一些英语词汇。例如:let、var、if、for等)

  • 只能用下划线、字母、数字、$组成,且数字不能开头
  • 字母严格区分大小写,如 Name 和 name 是不同的变量

规范:

  • 起名要有意义
  • 遵守小驼峰命名法

      (  第一个单词首字母小写,后面每个单词首字母大写如userName,以后和后端返回的数据会有关联)

2.5 let 和var的区别

var 声明:

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

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

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

let 为了解决 var 的一些问题,所有现在都在用let不用var

2.6 数组

数组 (Array) —— 一种将 一组数据存储在单个变量名下 的优雅方式

2.6.1 数组的基本使用

声明语法:

        let 数组名 = [数据1, 数据2, 数据3, 数据4, 数据5, ......]

注:

        数组是按顺序保存,所以每个数据都有自己的编号

        在数组中,数据的编号也叫索引或下标,从0开始

        在JavaScript中数组可以存储任意类型的数据

取值语法

        数组名[下标] 

注:

        通过下标取数据

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

数组的一些术语

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

        下标:数组中数据的编号

        长度:数组中数据的个数,通过数组的length属性获得

 三.常量

声明:const 

使用场景:当某个变量永远不会改变的时候,就可以用const声明

命名规范:和变量一致

注:

        常量声明的时候必须赋值(初始化)

四.数据类型

JS 数据类型整体分为两大类:

        基本数据类型:number 数字型,string 字符串型,boolean 布尔型,undefined 未定义型,null 空类型

        引用数据类型:object 对象

注:

        JS 是弱数据类型,变量到底属于那种类型,只有赋值之后,我们才能确认

        相对 的Java是强数据类型

4.1 数字类型(Number)

4.1.1 算术运算符

+:求和,-:求差,*:求积,/:求商,%:取模(取余数)(取模,开发中经常作为某个数字是否被整除)

优先级:JavaScript中 优先级越高越先被执行,优先级相同时以书从左向右执行。

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

4.1.2 NaN

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

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

NaN与NaN也是不相等的

4.2 字符串类型(string)

4.2.1 基本使用

字符串使用单引号,双引号,反引号都可以

单引号和双引号可以相互嵌套

4.2.2 字符串拼接

+ 运算符 可以实现字符串的拼接,数字相加,字符相连

4.2.3 模板字符串

拼接字符串和变量

语法:

        `` (反引号)

        在英文输入模式下按键盘的tab键上方那个键(1左边那个键)

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

4.3 布尔类型(boolean)

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

注:

        除了 0 所有的数字都为真

        除了空字符串'' 所有的字符串都为真

4.4 未定义类型(undefined)

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

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

使用场景:

        我们开发中经常声明一个变量,等待传送过来的数据。 如果我们不知道这个数据是否传递过来,此时我们可以通过检测这个变量是不是undefined,就判断用户是否有数据传递过来。

4.5 null(空类型)

JavaScript 中的 null 仅仅是一个代表“无”、“空”或“值未知”的特殊值

开发使用场景:

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

4.6 null 和 undefined区别

undefined 表示没有赋值

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

4.7 检测数据类型 

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

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

        函数形式: typeof(x)

五.类型转换

为什么:

        JavaScript是弱数据类型: JavaScript也不知道变量到底属于那种数据类型,只有赋值了才清楚。 坑: 使用表单、prompt 获取过来的数据默认是字符串类型的,此时就不能直接简单的进行加法运算。

定义:把一种数据类型的变量转换成我们需要的数据类型。

5.1 隐式转换

定义:

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

规则:

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

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

小技巧

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

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

5.2 显示转换

出现原因:

        为了避免因隐式转换带来的问题,通常根逻辑需要对数据进行显示转换。

概念:

        自己写代码告诉系统该转成什么类型

5.2.1 转为数字型

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

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

方法一:Number( )

        

方法二:parseInt(' ') 只取整数部分

方法三:parseFloat(' ')

方法二和方法三必须是数字开头

5.2.2 转为字符型

方法一:String( )

方法二:变量.toString( )

 六.实战案例

需求:用户输入商品价格和商品数量,以及收货地址,可以自动打印订单信息

分析:

        ①:需要输入3个数据,所以需要3个变量来存储 price num address

        ②:需要计算总的价格 total

        ③:页面打印生成表格,里面填充数据即可

        ④:记得最好使用模板字符串

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<style>
    h2{
        /*文字居中对齐*/
        text-align: center;
    }
    table {
        /*合并相邻边框*/
        border-collapse: collapse;
        height: 80px;
        /*居中*/
        margin: 0 auto;
        /*文字居中对齐*/
        text-align: center;
    }
    /*表格加边框*/
    table,th,td{
        border: 1px solid black;
    }
    /*各小表格的空间*/
    th {
        padding: 10px 40px;
    }
</style>
<body>
<h2>订单确认</h2>

<script>
    let name = prompt('请输入商品名称')
    let price = +prompt('请输入商品价格')
    let number = +prompt('请输入商品数量')
    let address = prompt('请输入收获地址')
    let total = price * number
    //页面打印渲染 css语句剪切
    document.write(`
    <table>
    <tr>
        <th>商品名称</th>
        <th>商品价格</th>
        <th>商品数量</th>
        <th>总价</th>
        <th>收货地址</th>
    </tr>
    <tr>
        <td>${name}</td>
        <td>${price}元</td>
        <td>${number}</td>
        <td>${total}元 </td>
        <td>${address}</td>
    </tr>
</table>
    `)
</script>
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值