Web前端最新Dart语法基础系列四《基本数据类型》(2),大厂面试问题

css

1,盒模型
2,如何实现一个最大的正方形
3,一行水平居中,多行居左
4,水平垂直居中
5,两栏布局,左边固定,右边自适应,左右不重叠
6,如何实现左右等高布局
7,画三角形
8,link @import导入css
9,BFC理解

js

1,判断 js 类型的方式
2,ES5 和 ES6 分别几种方式声明变量
3,闭包的概念?优缺点?
4,浅拷贝和深拷贝
5,数组去重的方法
6,DOM 事件有哪些阶段?谈谈对事件代理的理解
7,js 执行机制、事件循环
8,介绍下 promise.all
9,async 和 await,
10,ES6 的 class 和构造函数的区别
11,transform、translate、transition 分别是什么属性?CSS 中常用的实现动画方式,
12,介绍一下rAF(requestAnimationFrame)
13,javascript 的垃圾回收机制讲一下,
14,对前端性能优化有什么了解?一般都通过那几个方面去优化的?

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

使用 r 前缀,可以创建 “原始 raw” 字符串:

var s = r"In a raw string, even \n isn’t special.";

一个编译时常量的字面量字符串中,如果存在插值表达式,表达式内容也是编译时常量, 那么该字符串依旧是编译时常量。 插入的常量值类型可以是 null,数值,字符串或布尔值。

// const 类型数据

const aConstNum = 0;

const aConstBool = true;

const aConstString = ‘a constant string’;

// 非 const 类型数据

var aNum = 0;

var aBool = true;

var aString = ‘a string’;

const aConstList = [1, 2, 3];

const validConstString = ‘$aConstNum $aConstBool $aConstString’; //const 类型数据

// const invalidConstString = ‘$aNum $aBool $aString $aConstList’; //非 const 类型数据

Boolean



Dart 使用 bool 类型表示布尔值。 Dart 只有字面量 true and false 是布尔类型, 这两个对象都是编译时常量。

Dart 的类型安全意味着不能使用 if (nonbooleanValue) 或者 assert (nonbooleanValue)。 而是应该像下面这样,明确的进行值检查:

// 检查空字符串。

var fullName = ‘’;

assert(fullName.isEmpty);

// 检查 0 值。

var hitPoints = 0;

assert(hitPoints <= 0);

// 检查 null 值。

var unicorn;

assert(unicorn == null);

// 检查 NaN 。

var iMeantToDoThis = 0 / 0;

assert(iMeantToDoThis.isNaN);

List



几乎每种编程语言中最常见的集合可能是 array 或有序的对象集合。 在 Dart 中的 Array 就是 List 对象, 通常称之为 List 。

Dart 中的 List 字面量非常像 JavaScript 中的 array 字面量。 下面是一个 Dart List 的示例:

var list = [1, 2, 3];

提示: Dart 推断 list 的类型为 List 。 如果尝试将非整数对象添加到此 List 中, 则分析器或运行时会引发错误。 有关更多信息,请阅读 类型推断

Lists 的下标索引从 0 开始,第一个元素的索引是 0。 list.length - 1 是最后一个元素的索引。 访问 List 的长度和元素与 JavaScript 中的用法一样:

var list = [1, 2, 3];

assert(list.length == 3);

assert(list[1] == 2);

list[1] = 1;

assert(list[1] == 1);

在 List 字面量之前添加 const 关键字,可以定义 List 类型的编译时常量:

var constantList = const [1, 2, 3];

// constantList[1] = 1; // 取消注释会引起错误。

Set



在 Dart 中 Set 是一个元素唯一且无需的集合。 Dart 为 Set 提供了 Set 字面量和 Set 类型。

版本提示: 虽然 Set 类型 一直是 Dart 的核心部分, 但在 Dart2.2 中才引入了 Set 字面量 。

下面是通过字面量创建 Set 的一个简单示例:

var halogens = {‘fluorine’, ‘chlorine’, ‘bromine’, ‘iodine’, ‘astatine’};

要创建一个空集,使用前面带有类型参数的 {} ,或者将 {} 赋值给 Set 类型的变量:

var names = {};

// Set names = {}; // 这样也是可以的。

// var names = {}; // 这样会创建一个 Map ,而不是 Set 。

是 Set 还是 Map ? Map 字面量语法同 Set 字面量语法非常相似。 因为先有的 Map 字母量语法,所以 {} 默认是 Map 类型。 如果忘记在 {} 上注释类型或赋值到一个未声明类型的变量上, 那么 Dart 会创建一个类型为 Map<dynamic, dynamic> 的对象。

使用 add() 或 addAll() 为已有的 Set 添加元素:

var elements = {};

elements.add(‘fluorine’);

elements.addAll(halogens);

使用 .length 来获取 Set 中元素的个数:

var elements = {};

elements.add(‘fluorine’);

elements.addAll(halogens);

assert(elements.length == 5);

在 Set 字面量前增加 const ,来创建一个编译时 Set 常量:

final constantSet = const {

‘fluorine’,

‘chlorine’,

‘bromine’,

‘iodine’,

‘astatine’,

};

// constantSet.add(‘helium’); // Uncommenting this causes an error.

Map



通常来说, Map 是用来关联 keys 和 values 的对象。 keys 和 values 可以是任何类型的对象。在一个 Map 对象中一个 key 只能出现一次。 但是 value 可以出现多次。 Dart 中 Map 通过 Map 字面量 和 Map 类型来实现。

下面是使用 Map 字面量的两个简单例子:

var gifts = {

// Key: Value

‘first’: ‘partridge’,

‘second’: ‘turtledoves’,

‘fifth’: ‘golden rings’

};

var nobleGases = {

2: ‘helium’,

10: ‘neon’,

18: ‘argon’,

};

提示: Dart 会将 gifts 的类型推断为 Map<String, String>, nobleGases 的类型推断为 Map<int, String> 。 如果尝试在上面的 map 中添加错误类型,那么分析器或者运行时会引发错误。 有关更多信息,请阅读类型推断

以上 Map 对象也可以使用 Map 构造函数创建:

var gifts = Map();

gifts[‘first’] = ‘partridge’;

gifts[‘second’] = ‘turtledoves’;

gifts[‘fifth’] = ‘golden rings’;

var nobleGases = Map();

nobleGases[2] = ‘helium’;

nobleGases[10] = ‘neon’;

nobleGases[18] = ‘argon’;

提示: 这里为什么只有 Map() ,而不是使用 new Map()。 因为在 Dart 2 中,new 关键字是可选的。 有关更多信息,参考 构造函数的使用

类似 JavaScript ,添加 key-value 对到已有的 Map 中:

var gifts = {‘first’: ‘partridge’};

gifts[‘fourth’] = ‘calling birds’; // Add a key-value pair

类似 JavaScript ,从一个 Map 中获取一个 value:

var gifts = {‘first’: ‘partridge’};

assert(gifts[‘first’] == ‘partridge’);

如果 Map 中不包含所要查找的 key,那么 Map 返回 null:

var gifts = {‘first’: ‘partridge’};

assert(gifts[‘fifth’] == null);

使用 .length 函数获取当前 Map 中的 key-value 对数量:

var gifts = {‘first’: ‘partridge’};

gifts[‘fourth’] = ‘calling birds’;

assert(gifts.length == 2);

创建 Map 类型运行时常量,要在 Map 字面量前加上关键字 const。

final constantMap = const {

最后

前端CSS面试题文档,JavaScript面试题文档,Vue面试题文档,大厂面试题文档

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

使用 .length 函数获取当前 Map 中的 key-value 对数量:

var gifts = {‘first’: ‘partridge’};

gifts[‘fourth’] = ‘calling birds’;

assert(gifts.length == 2);

创建 Map 类型运行时常量,要在 Map 字面量前加上关键字 const。

final constantMap = const {

最后

前端CSS面试题文档,JavaScript面试题文档,Vue面试题文档,大厂面试题文档

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

[外链图片转存中…(img-xIWR2F1D-1715902324039)]

[外链图片转存中…(img-GtUhKfdr-1715902324040)]

  • 19
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值