前端学习日志-day15

目录

今日所学总结

一、编程语言与计算机基础核心

1. 编程语言核心要点

2. 计算机基础关键内容

二、JS 核心概念与书写、注释规则

1. JS 基础属性与浏览器关联

2. JS 的三大组成部分

3. JS 的三种书写形式

4. JS 的注释规则

三、JS 输入输出与变量关键知识

1. JS 输入输出语句

2. 变量核心知识

四、数据类型与转换核心要点

1. 数据类型的基本特性

2. 简单数据类型的关键特性

3. 数据类型的检测与转换

(1)数据类型检测

(2)数据类型转换

五、扩展核心术语与语言区别

1. 解释语言与编译语言的区别

2. 标识符、关键字、保留字的定义

今日作业

1.作业描述

2.作业实现代码

今日所学总结

一、编程语言与计算机基础核心

1. 编程语言核心要点

  • 核心定义:编程是为让计算机解决特定问题而编写程序代码的过程,编程语言是实现这一过程的工具。
  • 分类与特性:分为机器语言(计算机可直接识别,由 0 和 1 组成)、汇编语言(用符号替代机器指令)、高级语言(贴近人类自然语言,如 JS、Python);其中高级语言无法直接被计算机执行,必须通过翻译器转换成机器语言。
  • 与标记语言的区别:编程语言具备强逻辑性,能主动向计算机发送指令以实现特定功能;标记语言(如 HTML、CSS)仅用于描述内容结构,供计算机读取展示,无需发送指令。

2. 计算机基础关键内容

  • 计算机组成
    • 硬件:是计算机的物理部件,包括输入设备(如键盘、鼠标)、输出设备(如显示器、打印机)、CPU(中央处理器,负责运算和控制)、硬盘(长期存储数据)、内存(临时存储数据,断电丢失)。
    • 软件:是计算机的逻辑指令集合,分为系统软件(如 Windows、macOS,管理硬件和支持其他软件运行)和应用软件(如 Office、浏览器,满足特定使用需求)。
  • 数据存储:计算机内所有数据和指令均以二进制代码(0 和 1)形式存储;存储单位从最小到最大依次为 Bit(位)、Byte(字节)、KB、MB、GB、TB,换算关系为1Byte=8Bit,更高单位间遵循 1024 倍换算(如 1KB=1024Byte)。

二、JS 核心概念与书写、注释规则

1. JS 基础属性与浏览器关联

  • JS 定义:全称为 JavaScript,是一种运行在客户端(主要是浏览器)的脚本语言,属于解释性语言(逐句解释执行,无需提前编译)。
  • JS 作用:核心作用是在网页中实现业务逻辑(如表单验证、数据计算)和页面控制(如动态显示 / 隐藏元素、页面跳转),让静态网页具备交互能力。
  • 浏览器组成与 JS 的关系
    • 渲染引擎(浏览器内核):负责解析 HTML 和 CSS 代码,将其转换为可视化的网页界面,不处理 JS 代码。
    • JS 引擎:专门用于解释和执行 JS 代码,如 Chrome 浏览器的 V8 引擎,是 JS 能在浏览器中运行的核心。

2. JS 的三大组成部分

JS 功能的实现依赖以下三部分协同工作,具体职责如下表:

组成部分核心作用应用场景示例
ECMAscript定义 JS 的基础语言语法,包括变量、数据类型、运算符、语句等,是 JS 的语法规范核心定义变量(var a=10)、编写条件语句(if...else
Dom(页面文档对象模型)将 HTML 文档抽象为 “文档树” 结构,提供操作 HTML 元素的接口(如增删改查元素、修改样式)改变按钮文字(document.getElementById("btn").innerText="点击"
Bom(浏览器对象模型)提供操作浏览器窗口的接口,控制浏览器的行为(如打开新窗口、获取窗口大小、刷新页面)弹出确认框(confirm("确定退出吗?"))、获取窗口宽度(window.innerWidth

3. JS 的三种书写形式

不同书写形式适用于不同场景,具体规范如下:

  • 行内式:适用于少量或单行 JS 代码,直接嵌入到 HTML 元素的事件属性中(如onclickonmouseover);语法为属性名="JS代码",字符串需用单引号,示例:<button onclick="alert('Hello World')">点击弹窗</button>
  • 内嵌式:常用于学习或代码量较少的场景,将 JS 代码写在 HTML 文件的<head>标签内、<title>标签之后,用<script></script>标签包裹;注意代码需在标签内部,示例:
    <head>
      <title>JS示例</title>
      <script>
        alert("这是内嵌式JS");
      </script>
    </head>
    
  • 外部式:适用于代码量较大的实际开发场景,是最规范的书写形式;步骤为:①在项目目录中创建后缀为.js的文件(如my.js),②在 HTML 文件中通过<script src="文件路径"></script>引入;注意:引入外部 JS 的<script>标签内不能再写其他 JS 代码,示例:
    <!-- HTML文件中 -->
    <script src="my.js"></script>
    <!-- my.js文件中 -->
    console.log("这是外部式JS");
    

4. JS 的注释规则

注释用于解释代码功能,不影响程序执行,是提高代码可读性的重要方式,分为两种类型:

  • 单行注释:仅注释一行内容,语法为// 注释内容;快捷键为ctrl+/(Windows),示例:// 这是单行注释,用于解释下面的变量定义
  • 多行注释:用于注释多行内容(如函数说明、代码块功能),语法为/* 注释内容 */;快捷键为ctrl+shift+/(Windows),示例:
    /* 这是多行注释
       用于解释下面的弹窗功能
       点击按钮时触发alert */
    onclick="alert('Hello')"
    

三、JS 输入输出与变量关键知识

1. JS 输入输出语句

输入输出语句是 JS 与用户交互、调试代码的核心工具,共 3 个(2 个输出、1 个输入),需注意字符串内容必须加单引号:

  • 弹出警示框(输出):语法为alert(内容);功能是在浏览器中弹出一个包含指定内容的提示框,需用户点击 “确定” 才能关闭,示例:alert('欢迎访问网页')
  • 弹出输入框(输入):语法为prompt(提示内容);功能是弹出一个带输入框的对话框,可获取用户输入的内容(返回值为字符串类型),示例:var name = prompt('请输入你的名字')(将用户输入的名字存入name变量)。
  • 控制台日志输出(输出):语法为console.log(内容);功能是在浏览器的 “控制台”(按 F12 打开 “开发者工具”,切换到 Console 面板)中输出内容,主要用于开发时调试代码(用户不可见),示例:console.log('当前年龄:18')

2. 变量核心知识

变量是 JS 中存储数据的基础容器,本质是在计算机内存中开辟的一块指定空间,关键要点如下:

  • 变量的声明与赋值(初始化)

    • 语法:var 变量名 = 所赋值;;其中var是 JS 的关键字,作用是告诉浏览器 “为这个变量分配内存空间”,变量名是自定义的标识,所赋值是存储的数据,示例:var age = 18;(声明age变量,赋值为 18)。
    • 注意:变量初始化时,var关键字不可省略(省略会导致变量成为全局变量,存在风险)。
  • 变量语法扩展

    • 更新变量:对已声明的变量重新赋值,新值会覆盖旧值(遵循 “就近原则”),示例:var age = 18; age = 20;(最终age的值为 20)。
    • 多个变量声明:可在一行内同时声明多个变量,变量间用英文逗号,分隔,末尾用分号;结束,示例:var age = 10, sex = '男', myname = 'pink老师';(同时声明agesexmyname三个变量)。
    • 声明的特殊情况:
      1. 只声明不赋值:变量会被赋予默认值undefined(表示 “未定义”),示例:var score;score的值为undefined)。
      2. 不声明不赋值:直接使用变量会导致浏览器报错(“变量未定义”),示例:console.log(score);(报错)。
      3. 不声明只赋值:代码可运行(变量会成为全局变量),但不符合规范,不推荐使用,示例:score = 90;(不推荐)。
  • 变量的命名规范:命名需遵循严格规则,否则会导致代码报错或可读性差,具体规则如下:

    1. 组成规则:变量名只能由英文大小写字母、数字、下划线_、美元符号$组成,不能包含其他特殊字符(如空格、中文、@等)。
    2. 开头规则:不能以数字开头(如1age是错误的,age1是正确的)。
    3. 意义规则:命名必须有明确意义,让他人能快速理解变量用途(如用userName表示用户名,不用ab等无意义字母)。
    4. 关键字 / 保留字规则:不能使用 JS 的关键字(JS 已占用的字,如variffor)或保留字(当前未用但未来可能成为关键字的字,如classenum);同时尽量不用name作为变量名(可能与浏览器内置属性冲突)。
    5. 大小写规则:采用 “驼峰命名法”,即第一个单词首字母小写,后面单词首字母大写(如userAgeloginTime)。
    6. 区分大小写:JS 严格区分大小写,Ageage是两个不同的变量(var Age=18; var age=20;两者互不影响)。

四、数据类型与转换核心要点

1. 数据类型的基本特性

  • 动态类型特性:JS 是 “动态类型语言”,变量的数据类型不由声明时决定,而是由所赋的值的类型决定;赋值不同,变量类型会随之改变,示例:var a = 18;a是数字型),a = '18';a变为字符串型)。
  • 类型分类:JS 数据类型分为简单数据类型(又称 “基本数据类型”,如数字型、字符串型)和复合数据类型(又称 “引用数据类型”,如对象、数组,本次笔记暂未详细介绍)。

2. 简单数据类型的关键特性

简单数据类型是 JS 中最基础、最常用的类型,共 5 种,具体特性如下表:

数据类型关键字核心特性默认值示例
数字型(Number)Number1. 包含整数(如 10、-5)和浮点数(如 3.14、0.01);
2. 支持多进制:二进制(前缀0b,数字 0~1)、八进制(前缀0o,数字 0~7)、十六进制(前缀0x,数字 0~9、a~f);
3. 范围限制:最大值为Number.MAX_VALUE,最小值为Number.MIN_VALUE
4. 特殊值:infinity(正无穷大)、-infinity(负无穷大)、NaN(非数字,如10/'a'结果为NaN);
5. 判断工具:isNaN(变量)函数,返回true表示变量是非数字,返回false表示是数字
0var num = 10;(整数)、var num2 = 0b101;(二进制,对应十进制 5)
字符串型(String)String1. 用于表示文本,需用单引号''或双引号""包裹(推荐用单引号);
2. 引号嵌套规则:“外单内双” 或 “外双内单”(避免冲突),如'He said "Hello"'"She's happy"
3. 转义符:需在引号内使用,配合\表示特殊字符,常用转义符:\n(换行)、\\(显示斜杠\)、\'(显示单引号)、\"(显示双引号)、\t(缩进,相当于 Tab 键)、\b(空格);
4. 长度计算:用变量.length获取字符串的字符个数(空格、符号均算一个字符);
5. 拼接规则:用+拼接字符串,与字符串拼接的其他类型(如数字、布尔值)会自动转为字符串,示例:'年龄:' + 18(结果为'年龄:18'
""(空字符串)var str = 'Hello JS';var str2 = '姓名:"张三"'
布尔型(Boolean)Boolean1. 仅用于表示 “真” 或 “假”,只有两个值:true(真,等价于数字 1)、false(假,等价于数字 0);
2. 常用于条件判断(如if语句),表示条件是否成立
falsevar isLogin = true;(表示已登录)、var isShow = false;(表示隐藏)
未定义型(undefined)undefined1. 变量只声明不赋值时的默认值;
2. 运算特性:与字符串拼接时直接显示undefined(如'值:' + undefined结果为'值:undefined'),与数字运算时结果为NaN(如10 + undefined结果为NaN
undefinedvar a;a的值为undefined
空型(null)null1. 表示 “空值”,主动赋值给变量表示该变量无具体内容;
2. 运算特性:与字符串拼接时直接显示null(如'值:' + null结果为'值:null'),与数字运算时结果为原数字(如10 + null结果为 10)
nullvar b = null;b的值为null

3. 数据类型的检测与转换

(1)数据类型检测
  • 检测工具typeof(变量)函数(或typeof 变量),用于判断变量的数据类型,返回结果为字符串(如'number''string')。
  • 示例
    var num = 18;
    console.log(typeof(num)); // 输出'number'
    var str = '18';
    console.log(typeof str); // 输出'string'
    
(2)数据类型转换

在实际开发中,常需将一种数据类型转为另一种(如将用户输入的字符串转为数字计算),三种核心转换方向如下:

转换方向方法语法示例特点
转为字符串型1. 变量.toString()方法var num=18; var str=num.toString();需确保变量有值(undefinednull不能用此方法)
2. String(变量)函数var num=18; var str=String(num);通用方法,可转换undefinednull(如String(undefined)结果为'undefined'
3. 拼接空字符串(+''var num=18; var str=num + '';最简单常用,利用字符串拼接特性自动转换
转为数字型1. parseInt(变量)函数var str='18.5'; var num=parseInt(str);只保留整数部分(无论小数点后是否大于 5),结果为数字型;若无法转换则返回NaN(如parseInt('a18')NaN
2. parseFloat(变量)函数var str='18.5'; var num=parseFloat(str);保留浮点数部分,结果为数字型;同样无法转换时返回NaN(如parseFloat('18a')为 18)
3. Number(变量)函数var str='18.5'; var num=Number(str);严格转换,仅能转换纯数字字符串(如Number('18a')NaN),布尔值转换为 1(true)或 0(false
4. 算术运算(-/*//var str='18'; var num=str - 0;利用算术运算特性自动转换,仅适用于能转为数字的字符串;不可用++会转为字符串拼接)
转为布尔型Boolean(变量)函数var num=18; var bool=Boolean(num);1. 转为false的情况:空字符串('')、数字 0、nullNaNundefined
2. 其他情况(如非空字符串、非 0 数字、true)均转为true

五、扩展核心术语与语言区别

1. 解释语言与编译语言的区别

两种语言的核心差异在于 “执行方式”,直接影响代码运行效率和开发流程:

  • 解释语言:如 JS、Python;执行时由解释器逐句解释代码并立即执行,无需提前编译;优点是开发便捷(修改代码后无需重新编译),缺点是执行效率较低。
  • 编译语言:如 C、Java;执行前需通过编译器将全部代码整体编译为机器语言文件(如.exe文件),再运行编译后的文件;优点是执行效率高,缺点是开发流程稍复杂(修改代码需重新编译)。

2. 标识符、关键字、保留字的定义

三者均与变量命名相关,需严格区分以避免代码错误:

  • 标识符:开发者自定义的名称,用于给变量、函数、属性、参数等命名;命名需遵循变量命名的组成规则(如userNamegetAge均为合法标识符)。
  • 关键字:JS 语言本身已定义并使用的字,具有特定语法功能,不能作为标识符(如varifelseforfunction)。
  • 保留字:当前 JS 版本中未作为关键字使用,但未来版本可能会成为关键字的字,建议不作为标识符(如classenumexportimport)。

今日作业

1.作业描述

弹出输入框以此输入姓名,年龄,性别,然后弹出警示框输出用户姓名,年龄及性别。

2.作业实现代码

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var username = prompt('请输入您的姓名:');
        var age = prompt('请输入您的年龄:');
        var sex = prompt('请输入您的性别:');
        var str = '您的姓名:' + username + '\n您的年龄:' + age + '\n您的性别:' + sex;
        // var str = '您的姓名:' + username + '\n' + '您的年龄:' + age + '\n' + '您的性别:' + sex;
        alert(str);
    </script>
</head>

<body>

</body>

</html>

### 天机学堂 Day3 前端学习资料与教程 关于天机学堂第三天课程中的前端学习资料或教程,虽然未直接提及具体的内容[^1],但从已有信息可以推测出一些可能涉及的主题和技术点。 #### 可能的技术主题 1. **用户行为数据的实时更新** 在天机学堂的学习进度统计功能中提到,前端会每隔 15 秒向服务器发送一次请求以记录播放状态。这表明在第三天可能会深入讲解如何通过 WebSocket 或其他长连接技术替代轮询机制来提升性能和用户体验。 2. **JWT 的应用扩展** 登录验证采用了 JWT 技术,登录信息存储于请求头的 token 中[^2]。Day3 很有可能进一步探讨如何利用 JWT 实现权限管理、Token 刷新以及防止 Token 泄露的安全措施。 3. **调试技巧** 提到可以通过 F12 开发者工具查看网络请求并分析错误日志[^3]。此部分内容可能是为了帮助开发者快速定位问题,并结合断点调试方法解决问题。 4. **前后端交互优化** 随着项目的推进,可能会引入更多复杂的接口设计模式(如 RESTful API 和 GraphQL),并对现有架构进行重构以支持更高的并发量。 #### 推荐学习资源 以下是几个推荐的方向供参考: - **官方文档阅读** - 对 Vue.js/React 等主流框架深入了解其生命周期钩子函数的应用场景; - 学习 Axios 库处理 HTTP 请求的最佳实践; - **在线平台视频课件** - Udemy 上有关现代 JavaScript 特性的系列讲座可以帮助理解 ES6+ 新特性; - Coursera 平台上的 Web 性能调优专项课程能够提供理论支撑加上实际案例解析的机会; - **书籍建议** -JavaScript高级程序设计》全面覆盖了JS核心概念及其生态系统的方方面面; - 《Web性能权威指南》则专注于网站速度方面的改进策略研究。 ```javascript // 示例代码展示定时器设置方式 setInterval(() => { fetch('/api/updateProgress', { method: 'POST' }) .then(response => response.json()) .catch(error => console.error('Error:', error)); }, 15000); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值