我的JavaScript & TypeScript 学习总结

TypeScript 与 JavaScript 的区别(TypeScript万字基础入门,了解TS,看这一篇就够了) 面试题千万不要死记,一定要自己理解,用自己的方式表达出来,在这里预祝各位成功拿下自己心仪的offer。单实例继承age:numberconsole.log("年龄: "+drummer.age)console.log("喜欢的乐器: "+drummer.instrument)// 年龄: 25// 喜欢的乐器: Drums多实例继承v1:numberv2:number面试题千万不要死记,一定要自己理解,用自己的方式表达出来,在这里预祝各位成功拿下自己心仪的offer。 阅读详情

JavaScript 简介


JavaScript是一种可以用来给网页增加交互性的编程语言。

脚本语言(Scripting language)

javascript是一门解释型的语言,浏览器充当解释器。js执行时,在同一个作用域内是先解释再执行。解释的时候会编译function和var这两个关键词定义的变量,编译完成后从上往下执行并向变量赋值。


一、JavaScript总结

a.变量

变量名包括全局变量,局部变量,类变量,函数参数等等,他们都属于这一类。

变量命名都以类型前缀+有意义的单词组成,用驼峰式命名法增加变量和函式的可读性。

s:表示字符串。例如:sName,sHtml;
n:表示数字。例如:nPage,nTotal;
b:表示逻辑。例如:bChecked,bHasLogin;
a:表示数组。例如:aList,aGroup;
r:表示正则表达式。例如:rDomain,rEmail;
f:表示函数。例如:fGetHtml,fInit;
o:表示以上未涉及到的其他对象,例如:oButton,oDate;
g:表示全局变量,例如:gUserName,gLoginTime;

JScript 是一种区分大小写的语言。

javascript是一种弱类型语言,JavaScript 会忽略多余的空格。您可以向脚本添加空格,来提高其可读性。

var是javascript的保留字,表明接下来是变量说明,变量名是用户自定义的标识符,变量之间用逗号分开。

如果声明了一个变量但没有对其赋值,该变量存在,其值为Jscript 值 undefined。

b.js的数据类型

主要(基本)数据类型
字符串
数值
布尔
复合(引用)数据类型
对象
数组
特殊数据类型
 Null

`Undefined`

布尔(逻辑)只能有两个值:true 或 false。

字符串数据类型:字符串数据类型用来表示 JScript 中的文本。在js中,虽然双引号(“”)和单引号(‘’)均可表示字符串,而且它们几乎没有任何区别。但只使用双引号(“”)来表示字符串被认为是最佳的。

c.js数组和对象

JavaScript 中的对象(Object)和数组(Array)有时候看起来很相似,但它们是两种不同类型的数据集合,其中对象是包含已命名的值的无序集合,而数组则是包含已编码的值的有序集合。

var o = {  //对象
    x :1,  //该值命名为x
    y : true  //该值命名为y
}
var a = [  //数组
    1,  //该值隐含编码为0
    true  //该值隐含编码为1
]

对象的存储形式很像数组,因此被称为关联数组,但它不是真正意义上的数组。关联数组就是将值与特定字符串关联在一起。真正的数组与字符串没有联系,但是它将值和非负整数的下标关联在一起。

console.log(o["x"]);  //返回1,使用点语法存取属性
console.log(a[0]);  //返回1,使用中括号存取属性

d.JavaScript 的运算符

数据类型转换和基本包装类型
String() 转换为字符串类型
Number() 转换为数字类型
Boolean() 转换为布尔类型

parseInt:将字符串转换为整数。从字符串的开头开始解析,在第一个非整数的位置停止解析,并返回前面读到所有的整数。如果字符串不是以整数开头的,将返回NaN。如:parseInt(“150 hi”)返回的值是:150,parseInt(“hi”)返回的值是:NaN。
parseFloat:将字符串转换为浮点数。 从字符串的开头开始解析,在第一个非整数的位置停止解析,并返回前面读到所有的整数。如果字符串不是以整数开头的,将返回NaN。如:parseFloat(“15.5 hi”) 返回的值是:15.5,parseFloat(“hi 15.5”)返回的值是:NaN。

var box = 'trigkit4'; //字面量
box.name = 'mike';   //无效属性
box.age = function () { //无效方法
    return 22;
};
 
//new运算符写法
var box = new String('trigkit4');//new 运算符
box.name = 'mike';   //有效属性
box.age = function () { //有效方法
    return 22;
};

e.js函数

函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。

Jscript 支持两种函数:一类是语言内部的函数,另一类是自己创建的。

TypeScript 简介

二、TypeScript总结

a.TypeScript基本语法

我们可以把 TypeScript 代码的编写看作是为 JavaScript 代码添加类型注解。

在 TypeScript 语法中,类型的标注主要通过类型后置语法来实现。

let num: number = 1;

特殊说明:number表示数字类型,:用来分割变量和类型的分隔符。

1.字符串
let firstname: string = 'Captain'; // 字符串字面量
let familyname: string = String('S'); // 显式类型转换
let fullname: string = `my name is ${firstname}.${familyname}`; // 模板字符串

2.数字
/** 十进制整数 */
let integer: number = 6;
/** 十进制整数 */
let integer2: number = Number(42);
/** 十进制浮点数 */
let decimal: number = 3.14;
/** 二进制整数 */
let binary: number = 0b1010;
/** 八进制整数 */
let octal: number = 0o744;
/** 十六进制整数 */
let hex: number = 0xf00d;
3.Symbol
let sym1: symbol = Symbol();
let sym2: symbol = Symbol('42');
let sym: symbol = Symbol('a');
let sym2: Symbol = Symbol('b');
sym = sym2 //fail   “symbol”是基元,但“Symbol”是包装器对象。如可能首选使用“symbol”。
//Type 'Symbol' is not assignable to type 'symbol'.
 // 'symbol' is a primitive, but 'Symbol' is a wrapper object. Prefer using 'symbol' when possible.
sym2 = sym // ok
let str: String = new String('a');
let str2: string = 'a';
str = str2; // ok 
str2 = str; // fail

b.复杂基础类型

1.数组类型

首先,我们可以直接使用 [] 的形式定义数组类型,如下代码所示:

/** 子元素是数字类型的数组 */
let arrayOfNumber: number[] = [1, 2, 3];
/** 子元素是字符串类型的数组 */
let arrayOfString: string[] = ['x', 'y', 'z'];

同样,我们也可以使用 Array 泛型定义数组类型,如下代码所示:

/** 子元素是数字类型的数组 */
let arrayOfNumber: Array<number> = [1, 2, 3];
/** 子元素是字符串类型的数组 */
let arrayOfString: Array<string> = ['x', 'y', 'z'];

更推荐使用 [] 这种形式来定义。

2.元组类型

元组最重要的特性是可以限制数组元素的个数和类型,它特别适合用来实现多值返回。

import { useState } from 'react';
function useCount() {
  const [count, setCount] = useState(0);
  return ....;
}

出于较好的扩展性、可读性和稳定性考虑,我们往往会更偏向于把不同类型的值通过键值对的形式塞到一个对象中,再返回这个对象。

{
  state,
  setState
}

而 TypeScript 的元组类型正好弥补了这个不足,使得定义包含固定个数元素、每个元素类型未必相同的数组成为可能。


```javascript
[State, SetState]
[SetState, State]
const x: [State, SetState] = [state, setState];
const y: [SetState, State] = [setState, state];
(state: State) => [State, SetState]
关于Javascript的学习心得 本文特别适合刚开始学Javascript的入门小白,因为博主就是从这一步来的呀~ 阅读详情

相关推荐

【Linux】实际项目应该如何完成?--安防监控系统项目的总结

到目前为止我也做个5、6个嵌入式项目,但以往都是从零开始自己做,也就是毫无计划,想到那里做那里,有想法就会去实现,就这样导致我碰到了很多坑,也消耗了我许多时间,当然,不是说这样不好,因为在其中我也得到了一个很好的锻炼与练习,但是这不适用于在工作中去这样做。...

修成真的博客 6729

TypeScript与JavaScript

有些语言根本不允许那些有缺陷的程序运行。在不运行代码的情况下检测代码中的错误称为静态检查。根据正在操作的值的种类来确定什么是错误,什么不是错误,这被称为静态类型检查。

qq_57756904的博客 8916

Windows系统监控实战:Grafana+Prometheus+node_exporter保姆级配置指南(含常见问题解决)

本文提供了一份详尽的Windows系统监控实战指南,详细讲解了如何从零部署Grafana、Prometheus和node_exporter(实际为windows_exporter)监控栈。内容涵盖核心组件认知、分步配置解析、高级生产环境考量,并重点针对配置过程中常见的“No Data”问题提供了系统性的排查手册,旨在帮助用户快速搭建稳定可靠的系统资源监控平台。

weixin_29197835的博客 1008

TypeScript和JavaScript的区别

code函数要执行的代码;}其中function为声明函数的关键字,function_name为自定义函数的名字,arg为参数列表,_returntype为该函数的返回值类型,code为函数被调用时要执行的代码,使用return关键字返回数据,data为要返回的数据,要使用“{}”括起来。number)number{//定义返回值为number类型的函数returnx+y;//调用函数匿名函数number){//定义匿名函数returnx+y;};......

资深全栈开发工程师 7万+

ADS许可证配置全攻略:从破解文件放置到环境变量设置(实测有效版)

本文详细介绍了ADS许可证配置的全流程,包括环境准备、全新安装、破解文件部署和环境变量设置等关键步骤。针对常见的安装和授权问题,提供了实测有效的解决方案,帮助工程师快速完成ADS的配置与优化。

websocket5live的博客 379

【技术实践指南】Python解析FactSet Revere供应链数据:构建企业级断裂与重构监测指标

本文提供了一份企业级Python实践指南,详细解析如何利用FactSet Revere供应链数据库,构建供应链断裂与重构监测指标。内容涵盖数据清洗、关系对筛选、时间序列处理及核心指标(断裂、恢复、转移)的工程化实现,旨在帮助数据工程师与分析师搭建自动化、可解释的供应链风险监控系统。

weixin_29051811的博客 934

JavaScript与TypeScript的对比:深入理解两者的异同

JavaScript 和 TypeScript 是当今最流行的两种编程语言,尤其在前端开发中,它们占据着主导地位。虽然这两种语言在表面上看起来很相似,但它们有着显著的差异,尤其是在类型系统、开发体验、代码维护性等方面。本文将深入探讨 JavaScript 和 TypeScript 的差异,帮助开发者理解何时选择使用 JavaScript 或 TypeScript,以及如何在项目中有效地运用它们。

Chongdcg的博客 2165

上证指数30年k线图_金融占星简单解读上证指数30年历史行情

阅读此文需要一定的占星基础知识,本人对于金融知识了解甚少,如有描述错误请包涵指正!影响大众事件发展趋势的都是外行星,即木星-冥王星这5颗,由于时间跨度长达30年,绘制社会行星的K线图工作量太大,所以只以时代行星对这30年行情的简单解读作为分享,在今后的短期分析中会逐渐加入社会行星,甚至在个股分析上还会加入个人行星。那即使只绘制时代行星,所展现出来的信息也无法在一张图上画出来,否则太乱难以分辨,所以...

weixin_39831242的博客 1675

JavaScript & TypeScript 学习总结

JavaScript & TypeScript 学习总结

weixin_52166467的博客 184

易康eCognition9.0分类|规则集和机器学习的方法的面向对象的多尺度分割分类

基于易康eCognition9.0软件的规则集和机器学习的方法的面向对象的多尺度分割分类

weixin_46493028的博客 1万+

工业相机——靶面尺寸、像元尺寸、分辨率 、传感器尺寸

由Sensor对角线长度表示,单位英寸,这里的1英寸=16mm。——靶面尺寸为宽12.7mm*高9.6mm,对角线16mm。——靶面尺寸为宽8.8mm*高6.6mm,对角线11mm。——靶面尺寸为宽7.2mm*高5.4mm,对角线9mm。——靶面尺寸为宽6.4mm*高4.8mm,对角线8mm。——靶面尺寸为宽4.8mm*高3.6mm,对角线6mm。——靶面尺寸为宽3.2mm*高2.4mm,对角线4mm。——靶面尺寸为宽14*高10.5mm,对角线17mm。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 9607

javaScript & TypeScript 学习总结

该文是笔者学习javascript的学习笔记与参考老师typescript的笔记。若有错误请指正,万分感谢。

weixin_52686749的博客 950

LangChain从入门到精通最全教程

LangChain是一个用于构建基于大语言模型(LLM数据感知:连接外部数据源(文档、API等)智能代理:通过工具调用实现自主决策模块化设计:支持链式调用、记忆管理、提示词工程等from langchain . llms import BaseLLM class CustomLLM(BaseLLM) : def _call(self , prompt : str , ** kwargs) - > str : return f"自定义响应: {

Cachel Wood的博客 1410

JavaScript & TypeScript学习总结

JavaScript 是 Web 的编程语言。 所有现代的 HTML 页面都可以使用 JavaScript。 JavaScript 是一种运行在客户端的脚本语言 (Script 是脚本的意思),作为一门解释型语言,不需要被编译为机器码再执行,而是直接执行。 有多种方式可以运行JavaScript: 1.直接在浏览器的控制台编写运行; 2.可以编写一个独立的js文件,然后在Html文件中引入; 3.可以用编辑软件如Webstrom或VSCode编写独立的js文件,通过Node.js解释执行运行。1.大小写敏感

F__9527的博客 518

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

上一篇: 我的HTML&CSS学习总结
下一篇: 《Web应用基础》课程结业报告
killvector
博客等级 码龄5年 1粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值