JS和TS基础学习

javaScripte

export和import

javascript中import和export详解
JS之export
JS中export怎么用?

export导出分为两种导出
命名导出(每个模块包含任意数量)
默认导出(每个模块包含一个)

var、let、const

[JavaScript中var、let、const区别?](JavaScript中var、let、const区别? - 归子莫的回答 - 知乎
https://www.zhihu.com/question/52662013/answer/3127709545)

let和const是ES6中引入的,是为了解决var的问题。var有变量提升、可重复声明、无块级作用域和容易导致全局作用域的问题。

js的单线程和异步个概念

自己的瞎理解:javaScript从语法层面设计成了单线程的,也就是说程序员没办法new一个线程去做事情,但是jS的运行环境是在多线程环境下,js可以让异步任务在js的运行环境中的多线程中执行,执行结果在主线程中执行。

其实,js单线程的本质是,只能在主线程中操作DOM也就是UI,但其实运行环境还是有多线程的。这个从概念上和Android的UI线程是一个意思。从这个角度说,Android也是单线程的。Android需要new线程去执行异步任务,难道JS写一个回调函数,默认就是异步执行了???

简述JS单线程异步实现原理(面试)
JavaScript 运行机制详解:再谈Event Loop
JavaScript 异步操作之 Promise

TypeScripte

一文读懂TS的(.d.ts)文件
什么是.d.ts文件,以及为什么需要它

static和readOnly

TypeScript - 只读属性 ReadOnly
TypeScript stati静态

readOnly是TS中的关键字,不是JS的。这个是在class中使用的,类型java的final关键字
static也是TS的关键字,只能修饰类的变量或方法,不能修饰类

readOnly和const的区别,const是不能修饰类变量的

函数

在ES6以前,函数声明只能出现在JavaScript文件或其他函数的顶部。虽然有些实现弱化了这个限制,但严格来讲在循环体、条件或其他语句块中定义函数都不合法。不过在ES6的严格模式下,函数声明可以出现在语句块中。不过,在语句块中定义的函数只在该块中有定义,对块的外部不可见。

**函数声明实际上会声明一个变量,然后把函数对象赋值给它。而函数表达式不会声明变量,至于要把新定义的函数赋值给一个常量还是变量都取决于你,这样方便以后多次引用。**最佳实践是使用const把函数表达式赋值给常量,以防止意外又给它赋予新值而重写函数。

使用函数声明定义函数f()与创建一个函数表达式再将其赋值给
变量f有一个重要的区别。在使用声明形式时,先创建好函数对象,
然后再运行包含它们的代码,而且函数的定义会被提升到顶部,因
此在定义函数的语句之前就可以调用它们。但对于定义为表达式的
函数就不一样了,这些函数在定义它们的表达式实际被求值以前是
不存在的。不仅如此,要调用函数要求必须可以引用函数,在把函
数表达式赋值给变量之前是无法引用函数的,因此定义为表达式的
函数不能在它们的定义之前调用。

TypeScript 中冒号: ?: 的用法
?: 在类中定义属性的时候也可以用,相当于初始化为undifine。在TS中类属性一定要初始化或在构成函数中赋值,在java中不用

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

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

相关文章

解决npm install安装node-sass包容易失败的问题

具体问题如下: npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! While resolving: XXX3.4.0 npm ERR! Found: webpack5.31.2 npm ERR! node_modules/webpack npm ERR! peer webpack”^4.0.0 || ^5.0.0″ from html-…

SpringBoot和Axios数据的传递和接收-Restful完全版

文章目录 一、基础知识铺垫Axios使用HTTP请求方式数据传输方式SpringBoot获取数据的方式 二、基础传递代码示例(一)Path Variables(二)Get、DeleteRequestParamModelAttribute (三)Post、Put、PatchRequest…

FreeRTOS学习 -- 中断配置

一、什么是中断 中断时微控制器一个很常见的特性,中断是由硬件产生,当中断产生以后CPU就会中断当前的流程而去处理中断服务,Cortex-M内核的MCU提供了一个用于中断管理的嵌套向量中断控制器(NVIC)。 二、中断优先级分…

土壤湿度传感器:助力农业现代化

随着科技的飞速发展,越来越多的先进技术被应用到农业生产中。其中,土壤湿度传感器作为现代农业的重要工具,正逐渐改变着传统农业的生产方式,成为农业现代化的秘密武器。 精确监测:土壤湿度传感器能够实时、精确地监测土…

WIN7用上最新版Chrome

1.下载WIN10最新版Chrome的离线安装包 谷歌浏览器 Chrome 最新版离线安装包下载地址 v123.0.6312.123 - 每日自动更新 | 异次元软件 文件名称:123.0.6312.123_chrome_installer.exe。 123.0.6312.123_chrome_installer.exe 文件右键解压缩得到 chrome.7z&#x…

树莓派3B长时间不操作屏幕息屏无信号处理

树莓派外接显示器,需长时间展示某个网页,经过一段时间,显示器屏幕会黑掉显示无信号。 需修改 /etc/lightdm/lightdm.conf 配置文件中新增如下两行并重启。 xserver-commandX -s 0 dpms sleep-inactive-timeout0

软考 - 系统架构设计师 - Web 应用真题(2)

问题 1: 淘汰策略:遗留系统技术含量低,业务价值也低,所以需要全面重新开发一个系统来替代遗留系;(一般是企业的业务发生了根本变化,遗留系统已经基本不再适应企业运作的需要;或者是遗…

【Python基础】19.eval函数的使用

eval函数 eval()将字符串转变为有效的表达式来求值并返回对应的结果 基础数据计算 In [1]: eval("1 1") Out[1]: 2字符串重复 In [2]: eval (" * * 10") Out[2]: **********字符串转为列表 In [3]: type(eval("[1,2,3,4,5]")) Out[3]: lis…

docker 简单使用

docker 简单使用 一、 docker 安装二、docker 使用1. docker pull 拉取镜像2. docker run 后台运行3. docker ps 查看容器运行状态4. docker exec 进入容器5. exit 退出容器6. docker restar 重启容器7. docker stop 停止运行容器8. docker stop 启动容器9. docker stop 删除容…

nextjs渲染篇

1 服务器组件 默认情况下,Next.js 使用服务器组件。 1.1 服务器组件是如何呈现的? 在服务器上,Next.js 使用 React 的 API 来编排渲染。渲染工作被拆分为多个块:按单个路段和Suspense 每个区块分两个步骤呈现: Re…

Python一键修改目录下所有文件的编码格式

前言 在开发中总会遇到这样的问题,别人的代码采用的编码格式是GBK,而自己的项目的编码格式是UTF-8,如果直接复制过来,就会出现中文乱码的问题,一个个该编码格式又非常麻烦。所以我写了这样一小段简短的代码&#xff0…

Python 中的高阶函数

Python 中的高阶函数是指可以接受函数作为参数,或者返回函数作为结果的函数。这种特性让编程变得更加灵活和功能强大,常见的高阶函数有 map()、filter()、reduce() 和 sorted() 等。 map() 函数: map() 函数接受一个函数和一个可迭代对象&a…

select * from .... for update 使用 防止重复提交/操作

详情点下方链接 for-update笔记链接 注:当选中某一个行的时候,如果是通过主键id选中的。那么这个时候是行级锁。 其他的行还是可以直接insert 或者update的。如果是通过其他的方式选中行,或者选中的条件不明确包含主键。这个时候会锁表。其他的事务对该表的任意一行…

SQLite的PRAGMA 声明(二十三)

返回:SQLite—系列文章目录 上一篇:SQLite从出生到现在(发布历史记录)(二十二) 下一篇:用于 SQLite 的异步 I/O 模块(二十四) PRAGMA 语句是特定于 SQLite 的 SQL 扩…

Valorant 瓦罗兰特更新后进不去游戏?3个解决方法完美解决

Valorant 瓦罗兰特更新后进不去游戏?3个解决方法完美解决 《无畏契约(VALORANT)》是一款由知名游戏开发商(Riot Games)开发并且免费的多人射击游戏。游戏背景设定在一个幻想世界中,玩家将探索瓦罗兰大陆上…

面对深度合成技术备案,企业应该如何做好准备?

在这个数字化高速发展的时代,互联网信息服务已经深入我们生活的方方面面。特别是那些应用深度合成技术的互联网信息服务,比如通过算法实现的图像、语音和视频的合成等,现在都需要进行严格的备案。由于备案周期较长,建议涉及这些技…

基于python的二手房数据分析建模及可视化研究,爬取链家二手房数据,可视化分析,房价预测模型

介绍 主要涉及通过爬取济南市链家二手房数据,然后对数据进行处理,包括缺省值处理,高德地图获取二手房地址所属市区,经纬度等数据处理。然后通过python的flask框架编写后端接口,把数据响应给前端。然后前端通过AJAX请求…

Excel:如何对数据列进行码值转换

这里有两种函数可以直接解决: 在需要转码的数据列旁边新建一列,使用如下函数即可 1、函数一 VLOOKUP(H10,B3:C45,2,FALSE) VLOOKUP(需要转码的单元格,key和value所在数据范围,需要转成范围内第几列数据,是否模糊匹配) 这个函数中,key和valu…

Oracal数据库使用

Oracal官网:https://www.oracle.com/database/technologies/instant-client/downloads.html 官网搜索需登陆:https://edelivery.oracle.com/osdc/faces/SearchSoftware 软猫下载:Oracle 19.3 0、linux下安装 Linux系统(X64&…

lsof命令——查看进程信息

lsof是一个用于显示系统中打开的文件和进程的命令。它可以列出当前系统中打开文件的相关信息,如进程ID、文件描述符、文件类型、文件大小、文件所属用户、文件的读写状态等等。lsof命令可以帮助用户识别哪些进程正在使用某个文件或目录,以及查看系统中打…