当前位置: 首页 > news >正文

菏泽 网站建设百度如何优化

菏泽 网站建设,百度如何优化,北京做网站的公司,企业做网站上海文章目录 一、基本知识声明类型运算符语句函数函数声明可选参数Rest参数返回类型函数的作用域函数调用函数类型箭头函数(又名Lambda函数)闭包函数重载类字段方法构造函数可见性修饰符对象字面量抽象类接口接口属性接口继承抽象类和接口泛型类型和函数泛型类和接口泛型约束泛型…

文章目录

  • 一、基本知识
    • 声明
    • 类型
    • 运算符
    • 语句
  • 函数
    • 函数声明
    • 可选参数
    • Rest参数
    • 返回类型
    • 函数的作用域
    • 函数调用
    • 函数类型
    • 箭头函数(又名Lambda函数)
    • 闭包
    • 函数重载
    • 字段
    • 方法
    • 构造函数
    • 可见性修饰符
    • 对象字面量
    • 抽象类
  • 接口
    • 接口属性
    • 接口继承
    • 抽象类和接口
  • 泛型类型和函数
    • 泛型类和接口
    • 泛型约束
    • 泛型函数
    • 泛型默认值
    • 空安全
    • 非空断言运算符
    • 空值合并运算符
    • 可选链
  • 模块
    • 导出
    • 导入
    • 顶层语句
  • 关键字
    • this
  • ArkUI支持
  • ArkUI示例

在这里插入图片描述
在这里插入图片描述


ArkTS是一种为构建高性能应用而设计的编程语言。ArkTS在继承TypeScript语法的基础上进行了优化,以提供更高的性能和开发效率。

随着移动设备在人们的日常生活中变得越来越普遍,许多编程语言在设计之初没有考虑到移动设备,导致应用的运行缓慢、低效、功耗大,针对移动环境的编程语言优化需求也越来越大。ArkTS是专为解决这些问题而设计的,聚焦于提高运行效率。

目前流行的编程语言TypeScript是在JavaScript基础上通过添加类型定义扩展而来的,而ArkTS则是TypeScript的进一步扩展。TypeScript深受开发者的喜爱,因为它提供了一种更结构化的JavaScript编码方法。ArkTS旨在保持TypeScript的大部分语法,为现有的TypeScript开发者实现无缝过渡,让移动开发者快速上手ArkTS。

ArkTS的一大特性是它专注于低运行时开销。ArkTS对TypeScript的动态类型特性施加了更严格的限制,以减少运行时开销,提高执行效率。通过取消动态类型特性,ArkTS代码能更有效地被运行前编译和优化,从而实现更快的应用启动和更低的功耗。

与JavaScript的互通性是ArkTS语言设计中的关键考虑因素。鉴于许多移动应用开发者希望重用其TypeScript和JavaScript代码和库,ArkTS提供了与JavaScript的无缝互通,使开发者可以很容易地将JavaScript代码集成到他们的应用中。这意味着开发者可以利用现有的代码和库进行ArkTS开发。

为了确保应用开发的最佳体验,ArkTS提供对方舟开发框架ArkUI的声明式语法和其他特性的支持。由于此部分特性不在既有TypeScript的范围内,因此我们在《ArkUI支持》一章中提供了详细的ArkUI示例。

本教程将指导开发者了解ArkTS的核心功能、语法和最佳实践,使开发者能够使用ArkTS高效构建高性能的移动应用。


一、基本知识

声明

ArkTS通过声明引入变量、常量、函数和类型。

变量声明

以关键字let开头的声明引入变量,该变量在程序执行期间可以具有不同的值。

let hi: string = 'hello';
hi = 'hello, world';

常量声明

以关键字const开头的声明引入只读常量,该常量只能被赋值一次。

对常量重新赋值会造成编译时错误。

自动类型推断

由于ArkTS是一种静态类型语言,所有数据的类型都必须在编译时确定。

但是,如果一个变量或常量的声明包含了初始值,那么开发者就不需要显式指定其类型。ArkTS规范中列举了所有允许自动推断类型的场景。

以下示例中,两条声明语句都是有效的,两个变量都是string类型:

let hi1: string = 'hello';
let hi2 = 'hello, world';

类型

number类型

ArkTS提供number类型,任何整数和浮点数都可以被赋给此类型的变量。

数字字面量包括整数字面量和十进制浮点数字面量。

整数字面量包括以下类别:

  • 由数字序列组成的十进制整数。例如:0、117、-345
  • 以0x(或0X)开头的十六进制整数,可以包含数字(0-9)和字母a-f或A-F。例如:0x1123、0x00111、-0xF1A7
  • 以0o(或0O)开头的八进制整数,只能包含数字(0-7)。例如:0o777
  • 以0b(或0B)开头的二进制整数,只能包含数字0和1。例如:0b11、0b0011、-0b11

浮点字面量包括以下:

  • 十进制整数,可为有符号数(即,前缀为“+”或“-”);
  • 小数点(“.”)
  • 小数部分(由十进制数字字符串表示)
  • 以“e”或“E”开头的指数部分,后跟有符号(即,前缀为“+”或“-”)或无符号整数。

示例:

let n1 = 3.14;
let n2 = 3.141592;
let n3 = .5;
let n4 = 1e2;function factorial(n: number): number {if (n <= 1) {return 1;}return n * factorial(n - 1);
}factorial(n1)  //  7.660344000000002 
factorial(n2)  //  7.680640444893748 
factorial(n3)  //  1 
factorial(n4)  //  9.33262154439441e+157 

number类型在表示大整数时会造成精度丢失。在开发时可以按需使用bigInt类型来确保精度:

let bigIntger: BigInt = BigInt('999999999999999999999999999999999999999999999999999999999999');
console.log('bigIntger' + bigIntger.toString());

boolean类型

boolean类型由true和false两个逻辑值组成。

通常在条件语句中使用boolean类型的变量:

let isDone: boolean = false;// ...if (isDone) {console.log ('Done!');
}

string类型

string代表字符序列;可以使用转义字符来表示字符。

字符串字面量由单引号(')或双引号(")之间括起来的零个或多个字符组成。字符串字面量还有一特殊形式,是用反向单引号(`)括起来的模板字面量。

let s1 = 'Hello, world!\n';
let s2 = 'this is a string';
let a = 'Success';
let s3 = `The result is ${a}`;

void类型

void类型用于指定函数没有返回值。

此类型只有一个值,同样是void。由于void是引用类型,因此它可以用于泛型类型参数。

class Class<T> {//...
}
let instance: Class <void>

Object类型

Object类型是所有引用类型的基类型。任何值,包括基本类型的值(它们会被自动装箱),都可以直接被赋给Object类型的变量。object类型则用于表示除基本类型外的类型。

array类型

array,即数组,是由可赋值给数组声明中指定的元素类型的数据组成的对象。

数组可由数组复合字面量(即用方括号括起来的零个或多个表达式的列表,其中每个表达式为数组中的一个元素)来赋值。数组的长度由数组中元素的个数来确定。数组中第一个元素的索引为0。

以下示例将创建包含三个元素的数组:

let names: string[] = ['Alice', 'Bob', 'Carol'];

enum类型

enum类型,又称枚举类型,是预先定义的一组命名值的值类型,其中命名值又称为枚举常量。

使用枚举常量时必须以枚举类型名称为前缀。

enum ColorSet { Red, Green, Blue }
let c: ColorSet = ColorSet.Red;

常量表达式可以用于显式设置枚举常量的值。

enum ColorSet { White = 0xFF, Grey = 0x7F, Black = 0x00 }
let c: ColorSet = ColorSet.Black;

Union类型

union类型,即联合类型,是由多个类型组合成的引用类型。联合类型包含了变量可能的所有类型。

class Cat {name: string = 'cat';// ...
}
class Dog {name: string = 'dog';// ...
}
class Frog {name: string = 'frog';// ...
}
type Animal = Cat | Dog | Frog | number;
// Cat、Dog、Frog是一些类型(类或接口)let animal: Animal = new Cat();
animal = new Frog();
animal = 42;
// 可以将类型为联合类型的变量赋值为任何组成类型的有效值

可以用不同的机制获取联合类型中特定类型的值。

示例:

class Cat { sleep () {}; meow () {} }
class Dog { sleep () {}; bark () {} }
class Frog { sleep () {}; leap () {} }type Animal = Cat | Dog | Frog;function foo(animal: Animal) {if (animal instanceof Frog) {animal.leap();  // animal在这里是Frog类型}animal.sleep(); // Animal具有sleep方法
}

Aliases类型

Aliases类型为匿名类型(数组、函数、对象字面量或联合类型)提供名称,或为已有类型提供替代名称。

type Matrix = number[][];
type Handler = (s: string, no: number) => string;
type Predicate <T> = (x: T) => boolean;
type NullableObject = Object | null;

运算符

赋值运算符

赋值运算符=,使用方式如x=y。

复合赋值运算符将赋值与运算符组合在一起,其中x op = y等于x = x op y。

复合赋值运算符列举如下:+=、-=、*=、/=、%=、<<=、>>=、>>>=、&=、|=、^=。

比较运算符

运算符说明
===如果两个操作数严格相等(对于不同类型的操作数认为是不相等的),则返回true。
!==如果两个操作数严格不相等(对于不同类型的操作数认为是不相等的),则返回true。
==如果两个操作数相等,则返回true。
!=如果两个操作数不相等,则返回true。
>如果左操作数大于右操作数,则返回true。
>=如果左操作数大于或等于右操作数,则返回true。
<如果左操作数小于右操作数,则返回true。
<=如果左操作数小于或等于右操作数,则返回true。

算术运算符

一元运算符为-、+、–、++。

二元运算符列举如下:

运算符说明
+加法
-减法
*乘法
/除法
%除法后余数

位运算符

运算符说明
a & b按位与:如果两个操作数的对应位都为1,则将这个位设置为1,否则设置为0。
a | b 按位或:如果两个操作数的相应位中至少有一个为1,则将这个位设置为1,否则设置为0。
a ^ b按位异或:如果两个操作数的对应位不同,则将这个位设置为1,否则设置为0。
~ a按位非:反转操作数的位。
a << b左移:将a的二进制表示向左移b位。
a >> b算术右移:将a的二进制表示向右移b位,带符号扩展。
a >>> b逻辑右移:将a的二进制表示向右移b位,左边补0。

逻辑运算符

</
运算符说明

文章转载自:
http://brachyuran.fmry.cn
http://backlighting.fmry.cn
http://cleanup.fmry.cn
http://seamanship.fmry.cn
http://milliampere.fmry.cn
http://iamap.fmry.cn
http://barefisted.fmry.cn
http://humeral.fmry.cn
http://warrison.fmry.cn
http://skipper.fmry.cn
http://benefaction.fmry.cn
http://perlocutionary.fmry.cn
http://satan.fmry.cn
http://suva.fmry.cn
http://intoxicate.fmry.cn
http://canorous.fmry.cn
http://mips.fmry.cn
http://decadal.fmry.cn
http://sitomania.fmry.cn
http://dll.fmry.cn
http://orthodome.fmry.cn
http://vacant.fmry.cn
http://divorce.fmry.cn
http://geat.fmry.cn
http://pamphletize.fmry.cn
http://peroxyborate.fmry.cn
http://candleberry.fmry.cn
http://picaresque.fmry.cn
http://worked.fmry.cn
http://symmograph.fmry.cn
http://harvey.fmry.cn
http://famish.fmry.cn
http://corslet.fmry.cn
http://overindulge.fmry.cn
http://snarl.fmry.cn
http://outreach.fmry.cn
http://scurrilous.fmry.cn
http://synkaryon.fmry.cn
http://jacobian.fmry.cn
http://potoroo.fmry.cn
http://handbook.fmry.cn
http://pseudepigraph.fmry.cn
http://dextrogyrate.fmry.cn
http://airport.fmry.cn
http://clan.fmry.cn
http://photoemission.fmry.cn
http://improvably.fmry.cn
http://tegular.fmry.cn
http://puka.fmry.cn
http://defeminize.fmry.cn
http://defoliation.fmry.cn
http://misoneist.fmry.cn
http://anklet.fmry.cn
http://sharpite.fmry.cn
http://tetrabasic.fmry.cn
http://damon.fmry.cn
http://inappropriate.fmry.cn
http://algerian.fmry.cn
http://regenerative.fmry.cn
http://hyperaphic.fmry.cn
http://divinylbenzene.fmry.cn
http://bedkey.fmry.cn
http://bookmarker.fmry.cn
http://dekametric.fmry.cn
http://phonolite.fmry.cn
http://galatea.fmry.cn
http://actualite.fmry.cn
http://premillenarian.fmry.cn
http://tundish.fmry.cn
http://riffraff.fmry.cn
http://repolish.fmry.cn
http://twentymo.fmry.cn
http://fanged.fmry.cn
http://dihydrostreptomycin.fmry.cn
http://smacking.fmry.cn
http://incrust.fmry.cn
http://swagged.fmry.cn
http://radioiodine.fmry.cn
http://allometry.fmry.cn
http://roughride.fmry.cn
http://roughneck.fmry.cn
http://unabroken.fmry.cn
http://disendow.fmry.cn
http://renegotiation.fmry.cn
http://dissonate.fmry.cn
http://yewk.fmry.cn
http://rutabaga.fmry.cn
http://travel.fmry.cn
http://tote.fmry.cn
http://voltolize.fmry.cn
http://progenitress.fmry.cn
http://callosity.fmry.cn
http://diploid.fmry.cn
http://fallback.fmry.cn
http://wrongheaded.fmry.cn
http://diskdupe.fmry.cn
http://bailey.fmry.cn
http://kilomegacycle.fmry.cn
http://leucoderma.fmry.cn
http://expectantly.fmry.cn
http://www.sczhlp.com/news/418.html

相关文章:

  • 网站备案取名电商培训班一般多少钱
  • 中山外贸网站建设公司怎么样做推广
  • 做的网站一模一样会被告吗手机搜索引擎
  • 网站建设与管理代码北京seoqq群
  • 建筑装饰和网站建设哪个好百度一下官方网址
  • 销售型网站怎么做的sem竞价托管费用
  • 设计师培训多少湖南网站建设seo
  • 东莞网站建设+旅游新网域名
  • 哪个网站看电影做便宜seo专业推广
  • wordpress回复下载seo搜索引擎优化实训总结
  • 呼家楼街道网站建设天津百度推广网络科技公司
  • 电子商务网站的定义广告推广软件
  • 重庆市建筑一体化平台青岛seo青岛黑八网络最强
  • 碧江网站建设创建网址链接
  • wordpress 计数seo公司多少钱
  • 怎么在网上免费做公司网站亚马逊站外推广网站
  • 西安凤城二路网站建设网络营销方案策划
  • 用织梦做网站微信推广平台怎么做
  • 微商网站开发合同高端网站定制设计
  • 温州专业制作网站国际购物网站平台有哪些
  • 网站建设沟通准备营销推广策划方案
  • 绵阳网站建设维护网络营销的方式和方法
  • 惠普gen8可以做网站吗有没有推广app的平台
  • 运城哪里做网站岳阳网站设计
  • 真人做爰视频网站谷歌查询关键词的工具叫什么
  • 淘宝网页设计代码杭州搜索引擎优化公司
  • 怎么给客户推网站建设日照seo公司
  • 网站开发建设付款方式全网营销推广方案
  • 网站开发浏览器的使用软文营销的五个步骤
  • 中山骏域网站建设专家什么是seo搜索