JavaScript学习,常用常记(JSON,void,代码规范)

  • JSON 是用于存储和传输数据的格式。
  • JSON 通常用于服务端向网页传递数据 。

什么是 JSON?

  • JSON 英文全称 JavaScript Object Notation
  • JSON 是一种轻量级的数据交换格式。
  • JSON是独立的语言 *
  • JSON 易于理解。

* JSON 使用 JavaScript 语法,但是 JSON 格式仅仅是一个文本。
文本可以被任何编程语言读取及作为数据格式传递。

JSON 实例

以下 JSON 语法定义了 sites 对象: 3 条网站信息(对象)的数组:

{"sites":[
    {"name":"Runoob", "url":"www.runoob.com"}, 
    {"name":"Google", "url":"www.google.com"},
    {"name":"Taobao", "url":"www.taobao.com"}
]}

JSON 格式化后为 JavaScript 对象

  • JSON 格式在语法上与创建 JavaScript 对象代码是相同的。
  • 由于它们很相似,所以 JavaScript 程序可以很容易的将 JSON 数据转换为 JavaScript 对象。

JSON 语法规则

  • 数据为 键/值 对。
  • 数据由逗号分隔。
  • 大括号保存对象
  • 方括号保存数组

JSON 数据 - 一个名称对应一个值

  • JSON 数据格式为 键/值 对,就像 JavaScript 对象属性。
  • 键/值对包括字段名称(在双引号中),后面一个冒号,然后是值。

JSON 对象

  • JSON 对象保存在大括号内。
  • 就像在 JavaScript 中, 对象可以保存多个 键/值 对。

JSON 数组

  • JSON 数组保存在中括号内。
  • 就像在 JavaScript 中, 数组可以包含对象。

JSON 字符串转换为 JavaScript 对象

  • 通常我们从服务器中读取 JSON 数据,并在网页中显示数据。
  • 简单起见,我们网页中直接设置 JSON 字符串 (你还可以阅读我们的 JSON 教程):
  • 首先,创建 JavaScript 字符串,字符串为 JSON 格式的数据:
var text = '{ "sites" : [' +
'{ "name":"Runoob" , "url":"www.runoob.com" },' +
'{ "name":"Google" , "url":"www.google.com" },' +
'{ "name":"Taobao" , "url":"www.taobao.com" } ]}';
  • 然后,使用 JavaScript 内置函数 JSON.parse() 将字符串转换为 JavaScript 对象:
var obj = JSON.parse(text);
  • 最后,在你的页面中使用新的 JavaScript 对象:
document.getElementById("demo").innerHTML = obj.sites[1].name + " " + obj.sites[1].url;

相关函数

函数描述
JSON.parse()用于将一个 JSON 字符串转换为 JavaScript 对象。
JSON.stringify()用于将 JavaScript 值转换为 JSON 字符串。

我们经常会使用到 javascript:void(0) 这样的代码。javascript:void(0) 中最关键的是 void 关键字, void 是 JavaScript 中非常重要的关键字,该操作符指定要计算一个表达式但是不返回值。

<a href="javascript:void(0)">单此处什么也不会发生</a>

<a href="javascript:void(alert('Warning!!!'))">点我!</a>
function getValue(){
   var a,b,c;
   a = void ( b = 5, c = 7 );
   document.write('a = ' + a + ' b = ' + b +' c = ' + c );//a undefined
}

<input type="button" value="点我" onclick="getValue();" />

href="#"与href="javascript:void(0)"的区别

  • # 包含了一个位置信息,默认的锚是#top 也就是网页的上端。
  • 而javascript:void(0), 仅仅表示一个死链接。
  • 在页面很长的时候会使用 # 来定位页面的具体位置,格式为:# + id
  • 如果你要定义一个死链接请使用 javascript:void(0) 。
<a href="javascript:void(0);">点我没有反应的!</a>
<a href="#pos">点我定位到指定位置!</a>
<br>
...
<br>
<p id="pos">尾部定位点</p>

JavaScript 代码规范

代码规范通常包括以下几个方面:

  • 变量和函数的命名规则
  • 空格,缩进,注释的使用规则。
  • 其他常用规范……

规范的代码可以更易于阅读与维护。

代码规范一般在开发前规定,可以跟你的团队成员来协商设置。

变量名

变量名推荐使用驼峰法来命名(camelCase):

空格与运算符

通常运算符 ( = + - * / ) 前后需要添加空格:

代码缩进

通常使用 4 个空格符号来缩进代码块:

不推荐使用 TAB 键来缩进,因为不同编辑器 TAB 键的解析不一样。

语句规则

简单语句的通用规则:

  • 一条语句通常以分号作为结束符。

复杂语句的通用规则:

  • 将左花括号放在第一行的结尾。
  • 左花括号前添加一空格。
  • 将右花括号独立放在一行。
  • 不要以分号结束一个复杂的声明。

对象规则

对象定义的规则:

  • 将左花括号与类名放在同一行。
  • 冒号与属性值间有个空格。
  • 字符串使用双引号,数字不需要。
  • 最后一个属性-值对后面不要添加逗号。
  • 将右花括号独立放在一行,并以分号作为结束符号。

短的对象代码可以直接写成一行:

每行代码字符小于 80

为了便于阅读每行字符建议小于数 80 个。

如果一个 JavaScript 语句超过了 80 个字符,建议在 运算符或者逗号后换行。

命名规则

一般很多代码语言的命名规则都是类似的,例如:

  • 变量和函数为小驼峰法标识, 即除第一个单词之外,其他单词首字母大写( lowerCamelCase
  • 全局变量为大写 (UPPERCASE )
  • 常量 (如 PI) 为大写 (UPPERCASE )

变量命名你是否使用这几种规则: hyp-henscamelCase, 或 under_scores ?

HTML 和 CSS 的横杠(-)字符:

HTML5 属性可以以 data- (如:data-quantity, data-price) 作为前缀。

CSS 使用 - 来连接属性名 (font-size)。

Note- 通常在 JavaScript 中被认为是减法,所以不允许使用。

下划线:

很多程序员比较喜欢使用下划线(如:date_of_birth), 特别是在 SQL 数据库中。

PHP 语言通常都使用下划线。

帕斯卡拼写法(PascalCase):

帕斯卡拼写法(PascalCase) 在 C 语言中语言较多。

驼峰法:

JavaScript 中通常推荐使用驼峰法,jQuery 及其他 JavaScript 库都使用驼峰法。

Note变量名不要以 $ 作为开始标记,会与很多 JavaScript 库冲突。

HTML 载入外部 JavaScript 文件

使用简洁的格式载入 JavaScript 文件 ( type 属性不是必须的):

<script src="myscript.js">

文件扩展名

  • HTML 文件后缀可以是 .html (或 .htm)。
  • CSS 文件后缀是 .css 。
  • JavaScript 文件后缀是 .js 。

使用小写文件名

  • 大多 Web 服务器 (Apache, Unix) 对大小写敏感: london.jpg 不能通过 London.jpg 访问。
  • 其他 Web 服务器 (Microsoft, IIS) 对大小写不敏感: london.jpg 可以通过 London.jpg 或 london.jpg 访问。
  • 你必须保持统一的风格,我们建议统一使用小写的文件名。
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
当然可以,我可以为您提供一个简单的诗词背诵系统的代码示例。以下是一个基于C++的控制台程序,可以随机生成一首唐诗或宋词,然后要求用户输入诗词的朗读内容,再与原文进行比对,最后给出得分。 ```c++ #include <iostream> #include <string> #include <vector> #include <ctime> using namespace std; // 唐诗和宋词的库 vector<string> tang_poems = { "床前明月光,疑是地上霜。", "白日依山尽,黄河入海流。", "静夜思", "登高", "望岳", // ... 这里可以加入更多的唐诗 }; vector<string> song_lyrics = { "苏幕遮·燎沉香", "声声慢·寻寻觅觅", "虞美人·听雨", "如梦令·常记溪亭日暮", "长恨歌·汉皇重色思倾国", // ... 这里可以加入更多的宋词 }; // 获取当前时间(毫秒级别) int get_current_time() { return static_cast<int>(time(nullptr)); } // 随机获取唐诗或宋词 string get_random_poem_or_lyric() { srand(get_current_time()); int rand_index = rand() % 2; // 0表示唐诗,1表示宋词 if (rand_index == 0) { return tang_poems[rand() % tang_poems.size()]; } else { return song_lyrics[rand() % song_lyrics.size()]; } } // 计算用户得分 int calculate_score(const string& original, const string& user_input) { int score = 0; for (size_t i = 0; i < original.size(); i++) { if (i >= user_input.size()) { break; } if (original[i] == user_input[i]) { score++; } } return score; } int main() { // 随机获取一首唐诗或宋词 string original = get_random_poem_or_lyric(); // 输出原文 cout << "请朗读下面的诗词:" << endl; cout << original << endl; // 等待用户输入 string user_input; getline(cin, user_input); // 计算用户得分 int score = calculate_score(original, user_input); cout << "你的得分是:" << score << endl; return 0; } ``` 在这个简单的代码示例中,我们使用了一个包含多个唐诗和宋词的库,然后随机获取其中一首,输出给用户进行朗读。接着,我们等待用户输入,然后计算用户的得分,并输出给用户。 这个代码示例只是一个基础版本,您可以根据自己的需求进行修改和扩展。例如,您可以加入更多的唐诗和宋词,或者设计一个更加复杂的算法来计算用户得分,或者将程序界面化并添加音频播放功能等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hhjian6666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值