README

Example Guide

贡献指南

▼ 项目列表

▼ Intermediate-Level Ideas

Book Finder App

To-Do 应用

命令行计算器

Markdown预览器

Emoji翻译器应用

Password Generator

Name Generator

Meme生成器应用

FlashCards应用

Charity Finder App

Podcast目录应用

Game Suggestion App

Simple Online Store

Flip Art App

HighStriker游戏

Sports Bracket Generator

时区提醒机器人

二维码徽章应用

卡片记忆游戏

Bit Masks App

Chrome主题扩展

Currency Converter

Drawing App

GitHub个人资料

Image Scanner

Markdown表格生成器

RegExp助手应用

Sales数据库应用程序

String Art

This or That Game

Typing Practice App

Voting App

Math Editor

▼ 初学者项目合集

Bin2Dec应用

Border Radius Previewer

CSV转JSON应用

Calculator App

Calendar App

因果应用

Christmas Lights App

Color Cycle App

倒计时器应用

Dollars To Cents App

Dynamic CSS Variables App

First Database App

Flip Image App

GitHub状态应用

Hello App

IOT邮箱应用

JSON转CSV应用

Javascript正则表达式验证

Key-Value 应用

Lorem Ipsum 生成器

Notes应用

Pearson回归应用

Pomodoro时钟

产品登陆页

Quiz应用程序

随机餐点生成器

随机数生成器

Recipe App

Roman to Decimal Converter

滑块设计

Stopwatch App

True or False App

Vigenere 密码

Weather App

Windchill App

Word Frequency App

▼ Advanced Ideas

Battleship Bot

Battleship游戏引擎

Boole Bot 游戏

Bug Race Game

Calorie Counter App

Chat应用

Contribution Tracker App

Elevator App

FastFood应用

GitHub时间线应用

GitTweet应用

Instagram克隆应用

Kudos Slackbot

Movie App

MyPodcast Library App

NASA系外行星查询

Shell Game

Shuffle-Deck-App

Slack 归档器

SpellIt-App

Survey App

位掩码

等级: 中级

很难找到一个不依赖于某种条件逻辑来实现功能的app。这几乎总是通过使用类似以下语句来执行的:

if (processAccount === true) { 
  /* 做一些事情 */
}

if和switch语句对于有限数量的条件语句效果很好,但如果您的app有10个或100个条件语句需要评估呢?幸运的是,还有另一种方法。

位掩码app的目标是演示如何使用位掩码来评估更长的switch序列,而不必依赖于长串的条件语句。

用户故事

  • [ ] 用户可以看到一个垂直的复选框列表,列出了以下城市及其时区:
    • 莫斯科:GMT +3
    • 巴黎:GMT +2
    • 柏林:GMT +2
    • 布鲁塞尔:GMT +2
    • 阿姆斯特丹:GMT +2
    • 罗马:GMT +2
    • 伦敦:GMT +1
    • 都柏林:GMT +1
    • 纽约:GMT -4
    • 华盛顿特区:GMT -4
    • 圣路易斯:GMT -5
    • 洛杉矶:GMT -7
    • 东京:GMT +9
    • 北京:GMT +8
    • 胡志明市:GMT +7
    • 孟买:GMT +5
  • [ ] 用户可以看到一个GMT搜索框,在其中可以输入一个表示GMT偏移量的整数,并点击“查找城市”按钮。
  • [ ] 用户可以点击“查找城市”按钮,在输出区域显示该GMT偏移量下城市的名称。

开发者笔记

对于这个练习,开发者应该使用24个二进制位序列,每个对应于从+12到-12的GMT时区。

搜索应通过结合所需时区的位掩码与特定于城市的二进制序列来进行识别。确定一个城市是否符合搜索标准不应依赖于如下语句:

if (city[i].gmtOffset === searchOffset ) {
  /* 找到了! */
}

而应该依赖于位运算。

额外功能

  • [ ] 用户可以搜索不在搜索框中输入的GMT偏移量下的城市。
  • [ ] 用户可以看到符合搜索标准的城市数量总结计数。

有用链接和资源

示例项目

位运算