JavaScript百炼成仙自学笔记——1

我要成神,成为前后端都会的神

《JavaScript百炼成仙》是清华大学出版社出版的一部图书,作者是杨逸飞JavaScript百炼成仙_百度百科《JavaScript百炼成仙》是清华大学出版社出版的一部图书,作者是杨逸飞。icon-default.png?t=N7T8https://baike.baidu.com/item/JavaScript%E7%99%BE%E7%82%BC%E6%88%90%E4%BB%99/57371038我这里是我读这本书的读书笔记

(本人目前做java后端开发,算是有一些代码基础,笔记仅仅记一些要点,可能不太适合没接触过代码的朋友们)

OK,废话不多说,开启成神之路

数据分两类:原生数据类型和对象数据类型

创建一个对象:

方法一

var container = {}; 

var container = {caoyao : "解毒草" ,feijian: "乌木剑"
}; 

方法二

var container = {};
container.caoyao = "解毒草";
container. feijian = "乌木剑";

如果对象用点号去访问一个根本不存在的属性会怎样?

var container = {};
container.caoyao = "解毒草";
container. feijian = "乌木剑";
console.log(container.danyao); //注意:丹药这个属性是不存在的

danyao这个属性不存在于container对象中,因此是未定义的,得到的结果就是undefined!

加餐时间到:

1、对于console.log()有小伙伴可能不熟悉,这里ai一下

console.log() 是JavaScript中用于在控制台输出信息的函数。它接受一个或多个参数,并将它们打印到控制台中。这在调试和开发过程中非常有用,可以帮助开发者查看变量的值、程序的执行流程以及调试信息。

例如,你可以这样使用 console.log() 来输出一条消息到控制台:

console.log("Hello, world!");

你也可以输出变量的值:

let x = 10; console.log("The value of x is:", x);

console.log() 还可以接受多个参数,它们会被以空格分隔并输出到同一行:

let name = "Alice"; let age = 30; console.log("Name:", name, "Age:", age);

除了简单的文本和变量之外,console.log() 还可以输出对象、数组和其他复杂数据类型的内容。

2、除了console.log,还有什么打印、或是弹窗的的方式

除了 console.log() 以外,JavaScript 还有一些其他的方式来输出信息或与用户交互:

alert():弹出一个带有指定消息和一个确定按钮的警告框,通常用于向用户显示一条重要信息。

alert("This is an alert message!");

confirm():弹出一个带有指定消息、确定按钮和取消按钮的对话框,用于获取用户的确认或取消选择。

let result = confirm("Are you sure you want to delete this item?"); if (result) { // 用户点击了确定按钮 } else { // 用户点击了取消按钮 }

prompt():弹出一个带有指定消息和一个输入框的对话框,用于获取用户输入的信息。

let name = prompt("Please enter your name:", "John Doe"); if (name != null) { // 用户输入了名字 } else { // 用户点击了取消按钮 }
这些方法可以在网页上与用户进行交互,提供了一种简单而直接的方式来获取用户的输入或显示信息。但需要注意的是,它们会打断用户的操作流程,因此在使用时应该谨慎考虑,以确保良好的用户体验。

3、什么是原生数据类型

原生数据类型

原生数据类型,也称为基本数据类型,代表了JavaScript中的基本数据单位。它们是不可变的,这意味着不能改变其内部值。JavaScript有七个原生数据类型:

  1. 字符串(String):一系列字符的集合,用单引号或双引号包围。例如 'hello'"world"

  2. 数值(Number):包含整数和浮点数。JavaScript中没有专门的整数类型,因此所有数值都是64位的双精度浮点数。

  3. 布尔值(Boolean):只有两个值:truefalse,用于逻辑判断。

  4. 空值(Null):代表空或不存在的值。null 通常用于指示一个对象或变量没有值。

  5. 未定义(Undefined):当变量声明但未赋值时,其值是undefined。这意味着变量没有定义实际的内容。

  6. 符号(Symbol):用于创建唯一标识符。符号在ES6(ECMAScript 2015)中引入,常用于定义对象的唯一属性或方法。

  7. 大整数(BigInt):可以处理大于Number类型最大值的整数。通过在数字后面加上 n 可以创建一个BigInt

4、什么是对象数据类型

对象数据类型

对象数据类型是更复杂的数据结构,通常用于存储和组织相关的数据。对象数据类型可以变化,这意味着它们的内部状态可以被修改。以下是一些主要的对象数据类型:

  1. 对象(Object):键值对的集合。键通常是字符串,值可以是任何数据类型。对象用于组织相关数据,表示实体、配置或状态。

  2. 数组(Array):一种特殊的对象,其键是有序的整数索引。数组允许存储和访问数据的有序列表。

  3. 函数(Function):JavaScript中的函数是一等公民,意味着它们可以像其他值一样传递和操作。函数是对象,可以赋值给变量,作为参数传递,或作为返回值返回。

  4. 日期(Date):用于表示日期和时间。Date 对象提供了多种处理日期和时间的方法。

  5. 正则表达式(RegExp):用于处理正则表达式。可以用于匹配和搜索字符串。

  6. 错误(Error):用于表示异常和错误状态。Error 对象可以用于处理程序中的异常。

  7. 映射和集合(Map and Set):在ES6中引入。Map 是一个键值对的集合,Set 是一个不重复值的集合。

5、有些小伙伴没听过ES6,这里ai一下:

ES6,也称为ECMAScript 2015,是JavaScript的第六个版本,是ECMAScript标准的一次重大更新。它引入了许多新的语言特性和改进,使得JavaScript更强大、更易于使用和理解。以下是ES6引入的一些主要特性:

  1. 箭头函数(Arrow Functions):提供了一种更简洁的函数定义语法,同时修复了传统函数中 this 关键字的作用域问题。

  2. 模板字面量(Template Literals):允许在字符串中嵌入表达式,提供了更方便和可读的字符串拼接方式。

  3. 解构赋值(Destructuring Assignment):允许通过模式匹配来从数组和对象中提取值并赋给变量,使得代码更简洁。

  4. 默认参数(Default Parameters):允许为函数参数设置默认值,简化了函数调用时的参数传递。

  5. 展开运算符(Spread Operator):允许在函数调用、数组字面量和对象字面量中展开数组或对象,简化了数据的操作和传递。

  6. 剩余参数(Rest Parameters):允许将函数的剩余参数收集到一个数组中,使得函数可以接受任意数量的参数。

  7. 类和模块(Classes and Modules):引入了类的概念,提供了更简洁和面向对象的语法,同时也支持模块化的导入和导出。

  8. Promise对象(Promises):用于处理异步操作的对象,提供了更优雅和可靠的异步编程方式。

  9. 新增的数据结构(New Data Structures):引入了 MapSetWeakMapWeakSet 等新的数据结构,使得数据处理更加灵活。

  10. 模块加载器(Module Loader):定义了模块加载的标准,使得在浏览器和服务器端都可以使用统一的模块化开发方式。

这些特性使得ES6成为JavaScript发展史上的一个重要里程碑,为开发者提供了更多的工具和技术来构建复杂和可维护的应用程序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/660712.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flink checkpoint 源码分析- Checkpoint barrier 传递源码分析

背景 在上一篇的博客里,大致介绍了flink checkpoint中的触发的大体流程,现在介绍一下触发之后下游的算子是如何做snapshot。 上一篇的文章: Flink checkpoint 源码分析- Flink Checkpoint 触发流程分析-CSDN博客 代码分析 1. 在SubtaskCheckpointCoo…

笔记-word导出PDF老是更新域导致图片和表格题注发生变化

问题描述:微软word 导出PDF时,老是更新域,导致图片和表格题注否跟着变化 以下是解决方法的具体描述。 目录 一、准备工作二、操作步骤 一、准备工作 1、工具版本:微软 word 2016(其他微软word版本也OK) …

WebP格式:图片压缩的新标准

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

蓝桥杯如何准备国赛?

目录 一、赛前准备 1、如何刷题,刷哪些题? 2、记录(主要看个人习惯) CSDN博客 写注释 3、暴力骗分 4、从出题人的角度出发,应该如何骗分 二、赛中注意事项 一、赛前准备 1、如何刷题,刷哪些题&…

3.9设计模式——Strategy 策略模式(行为型)

意图 定义一系列的算法,把它们一个个封装起来,并且使他们可以相互替换此模式使得算法可以独立于使用它们的客户而变化 结构 Strategy(策略)定义所有支持的算法的公共入口。Context使用这个接口来调用某ConcreteStrategy定义的方…

【论文阅读】ChipNeMo中的数据集处理

前面总体学习了《ChipNeMo: Domain-Adapted LLMs for Chip Design》,然后又继续仔细看了论文中的领域适配分词和领域数据微调的预训练检索模型,对于数据集的处理,也需要仔细看一下。 提炼重点:1)对于数据集&#xff0…

ROS1快速入门学习笔记 - 11参数的使用与编程方法

目录 一、参数模型(全局字典) 二、使用方法 1. 创建功能包 2. 参数命令行的使用 3. 通过C实现参数设置 4. 在CMakeLists中进行编译 5. 运行程序 6. 编程方法(Python) 一、参数模型(全局字典) 每个节…

[学习笔记]CyberDog小米机器狗 开发学习

1、机器狗本身是UbuntuROS2系统 2、控制机器人只需要了解lcm和Ros topic通讯 3、传感器数据(包括一些imu(/imu)、激光雷达(/scan))会进行topic的一个广播。 仿真环境通信接口: -命令输入(见后续运控说明) 运控lcm数据接口 Motion man…

在离线环境中将 CentOS 7.5 原地升级并迁移至 RHEL 7.9

《OpenShift / RHEL / DevSecOps 汇总目录》 说明 本文将说明如何在离线环境中将 CentOS 7.5 升级并迁移至 RHEL 7.9。为了简化准备过程,本文前面将在在线环境中安装用到的各种所需验证软件,而在后面升级迁移的时候再切换到由 ISO 构成的离线 Yum Repo…

【STM32】F405/407的模块总览图,记录查看

从STM32F405/407数据手册中提取,方便以后查看。主要是什么外设连接在什么总线上,时钟频率是多少。 TIM2、3、4、5、12、13、14在APB1上,最大频率84M TIM1、8、9、10、11在APB2上,最大频率168M

Android(Java)项目支持Kotlin语言开发

Android(Java)项目通过相关Kotlin设置后,允许同时使用Java语言和Kotlin语言进行开发代码的。 示例环境: Android Studio Giraffe | 2022.3.1 Patch 3 Java 8 Kotlin 1.9.20 设置Kotlin选项: 第一步:在项…

LeetCode 110.平衡二叉树(Java/C/Python3/Go实现含注释说明,Easy)

标签 树深度优先搜索递归 题目描述 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡的二叉树定义为: 一个二叉树每个节点的左右两个子树的高度差的绝对值不超过1。 原题:LeetCode 110.平衡二叉树 思路及…