Ronan Blog

罗华东的博客 | 向前每多走一步,热爱和勇气就会多一分。

JavaScript

2024-09-02 7 min read Docs Ronan

对象概述

什么是对象?对象(object)是 JavaScript 语言的核心概念,也是最重要的数据类型

简单说,对象就是一组“键值对”(key-value)的集合,是一种无序的复合数据集合

img

var user = {
  name: 'itbaizhan',
  age: '13'
};

对象的每一个键名又称为“属性”(property),它的“键

值”可以是任何数据类型。如果一个属性的值为函数,通常把这个属性称为“方法”,它可以像函数那样调用

var user = {
  getName: function (name) {
    return name;
  }
};
user.getName("itbaizhan") // itbaizhan

如果属性的值还是一个对象,就形成了链式引用

var user = {
    name:"itbaizhan",
    age:13,
    container:{
        frontEnd:["Web前端","Android","iOS"],
        backEnd:["Java","Python"]
    }
}
user.container.frontEnd // ["Web前端","Android","iOS"]

Math对象

Math是 JavaScript 的原生对象,提供各种数****学功能。

Math.abs()

Math.abs方法返回参数值的绝对值

Math.abs(1) // 1
Math.abs(-1) // 1

Math.max(),Math.min()

Math.max方法返回参数之中最大的那个值,Math.min返回最小的那个值。如果参数为空, Math.min返回Infinity, Math.max返回-Infinity

Math.max(2, -1, 5) // 5
Math.min(2, -1, 5) // -1
Math.min() // Infinity
Math.max() // -Infinity

Math.floor(),Math.ceil()

Math.floor方法返回小于参数值的最大整数

Math.floor(3.2) // 3
Math.floor(-3.2) // -4

Math.ceil方法返回大于参数值的最小整数

Math.ceil(3.2) // 4
Math.ceil(-3.2) // -3

Math.random()

Math.random()返回0到1之间的一个伪随机数,可能等于0,但是一定小于1

Continue reading

「Python」异常处理

2024-09-02 2 min read Docs Ronan

在 Python 中,常见的基本错误有两类,即语法错误和异常。对于语法错误,应该在程序编写过程中尽量予以避免,在程序调试中消除。而异常是 Python 程序在运行过程中引发的错误,如果程序中引发了未进行处理的异常,程序就会由于异常而终止运行,只有为程序添加异常处理,才能使程序更具健壮性。

1.语法错误

语法错误是所有编程语言中都存在的一种常见错误,即程序的洗发不符合编程语言的规定。常见的语法错误有:

  1. 拼写错误(SyntaxError、NameError),即 Python 语言中的关键字写错,变量名,函数名拼写错误等。
  2. 脚本程序不符合 Python 的语法规范,例如少了括号,冒号等,以及表达式书写错误等。
  3. 缩进错误,因为 Python 语法规定,以缩进作为程序的语法之一。一般来说,Python 标准的缩进是以 4 个空格或一个 Tab 作为一个缩进,但同一个程序或项目中应该统一使用同一种缩进风格。

2.异常处理

异常是 Python 程序在运行过程中引发的错误。如果程序中引发了未进行处理的异常,脚本就会由于异常而终止运行。只有在程序中捕获这些异常,并进行相关的处理,才能使程序不会中断运行。

Python 中使用 try...except 语句来说处理异常,基本形式如下:

try:
	'语句'	 # 可能产生异常的语句
except	'异常名 1'	# 要处理的第一类异常
	'语句'	 # 异常的处理语句
except	'异常名 1'	# 要处理的第二类异常
	'语句'	 # 异常的处理语句
else:		  
	'语句'     # 未触发异常,则执行该语句
finally:	  
	'语句'     # 始终执行该语句,一般为了达到释放资源等目的

注意:else 语句在未引发异常情况下得到运行。

首先,我们先演示一个最简单的案例:

# 函数名错误, print 误写成 printt
printt(1)
print(2)

运行结果:

NameError: name 'printt' is not defined

使用异常捕获

try:
    # 函数名错误, print 误写成 printt
    printt(1)
except:
    print('捕获到了异常')

print(2)

注意:

Continue reading

sdcc编译与链接

2024-09-02 1 min read Docs Ronan

1.编译源文件

首先,你需要编译你的源文件(例如 main.c)以生成目标文件(.rel)。你可以使用以下命令:

sdcc -c main.c

这条命令会生成 main.rel 文件。

如果你的库文件不在当前目录下并且提示头文件未找到,你可以通过 -I 选项指定包含文件的路径,然后使用绝对路径指定库,例如:

sdcc  -I/path/to/include -c /path/to/src/main.c 

这条命令也会生成 main.rel 文件。

如果不希望生成的目录挤在和main.c相同目录下,可以通过-o参数指定

sdcc -c main.c -o /path/to/build

2.编译其他库文件

假设你有其他的库文件(例如 library.c),你需要同样地将它们编译成目标文件:

sdcc -c library.c

这条命令会生成 library.rel 文件。

你需要编译的库文件是以 .lib 或者 .a 结尾的,你可以在编译命令中指定这些库文件。

如果你的库文件不在当前目录下并且提示头文件未找到,你可以通过 -I 选项指定包含文件的路径,然后使用绝对路径指定库,例如:

sdcc  -I/path/to/include -c /path/to/lib/library.c

这条命令也会生成 library.rel 文件。

如果不希望生成的目录挤在和main.c相同目录下,可以通过-o参数指定

sdcc -c library.c -o /path/to/build

3.链接所有目标文件

一旦你有了所有的目标文件,你就可以将它们链接起来生成最终的二进制文件。你可以使用以下命令:

sdcc main.rel library.rel

这条命令会生成一个可执行文件(例如 a.out 或者具体取决于你编译的目标平台)。

例如,生成.hex文件:

sdcc -o out.hex main.rel library.rel

综合实例

假设你的项目结构如下:

Continue reading
Older posts Newer posts