一、细说布尔操作符

本文介绍了JavaScript中的布尔操作符AND、OR、NOT的用法和特性,特别是它们的短路性质。通过示例解析了如何利用这些操作符进行条件判断,并在变量不确定时赋默认值,以及在不同操作数类型下的行为。对于`&&`和`||`操作符,文章详细阐述了它们在遇到对象、null、undefined和NaN时的返回规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果老夫没猜错的话,所有编程语言都有布尔操作(应该不会被打脸吧!)。
这里写图片描述
今天聊一下JS中的布尔操作符,一共三个,与(AND)或(OR)非(NOT)
基本的用法就不说了,先从一个例子引出想要说明的特性,看下面代码(想想执行的话会出现什么情况,控制台会打印什么?会报错吗?):

const isTrue=true,isFalse=false;
if(isFalse&&b) {console.log("输出1")};//不会输出任何东西,但也不会报错       
if(isTrue&&b) {console.log("输出2")};//会报错Uncaught ReferenceError

代码中没有声明变量b但是直接使用了,b理应是undefined。但是第一段if代码却没有报错,正是由于&&操作符

文件操作是指通过编程语言提供的功能对计算机系统中的外部存储设备(如硬盘)上的文件进行读写和其他管理的操作过程。在C语言里,文件被看作是由字节构成的数据序列,支持顺序访问和随机访问两种模式。接下来详细讲解下有关文件操作的具体步骤相关内容: ### 1. 文件类型及描述符 在C语言中,所有文件都被视为“流”来进行处理,“流”可以分为以下两类: - 标准输入输出流 (stdio.h) - `stdin`:标准输入,默认连接至键盘; - `stdout`:标准输出,默认指向显示器屏幕; - `stderr`:错误信息输出端口。 - 自定义文件流 (`FILE*`) 使用fopen()函数打开某个指定路径下的普通文本或二进制文件生成相应FILE类型的指针变量用于后续各类加工。 --- ### 2. 基本流程 #### (1)打开文件(fopen()) 要开始操作前先得用`fopen()`把目标文档加载进来得到句柄作为入口标志物供以后查阅修改之需。 ```c #include <stdio.h> // 参数说明:filename代表欲寻址档案名;mode规定了开启状态例如"r"(只读)"w"(覆盖写入)等等。 FILE *fp = fopen(const char * filename, const char * mode); ``` #### (2)关闭文件(fclose()) 旦结束工作记得释放资源以免泄露造成不必要的麻烦哦! ```c int fclose(FILE * stream); // 成功返回0失败非零数 ``` #### (3)读/写字节数组(fread()/fwrite()) 对于大批量连续性的数值传输任务而言这两个内置服务无疑是最好的助手啦!它们允许用户次过搬运任意长度缓冲区内存块到目的地上去或是相反方向过来提取资料回来填充空白区位上去呢。 ```c size_t fread(void * ptr, size_t size_of_elements, size_t number_of_elements, FILE * stream); size_t fwrite(const void * ptr, size_t size_of_elements, size_t number_of_elements, FILE * stream); ``` 其中`ptr`是我们准备存放或发送出去的段区域起始位置;而其他几个参数共同决定了整个行动规模大小范围限制等内容特性细节之处呀。 #### (4)定位光标(ftell(), fseek()) 有时候为了满足特定需求可能需要跳转回之前某些关键帧节点再次审视番又或者直接略过后半部分内容直达结尾部分快速统计总行数之类的吧~这时候就需要求助于这两位小伙伴咯~ ```c long ftell(FILE * stream); // 返回当前位置偏移值相对于开头的字节数目表示法结果形式呈现出来给调用者知道目前处于何处而已噢~ int fseek(FILE * stream, long offset, int origin); /* 设置新起点=origin +offset; 其中原点可以选择三个固定参照系分别是: SEEK_SET -> File Beginning; SEEK_CUR -> Current Position ; SEEK_END -> End Of The Document */ ``` --- ### 3. 示例代码片段 下面提供个小例子演示怎样利用上述提到过的各个组件协同合作完成简单的日记记录小工具的功能实现版本展示给大家参考借鉴哈~ ```c #include<stdio.h> #include<time.h> void write_log(){ time_t now=time(NULL); struct tm*tlocal=localtime(&now); char buffer[80]; strftime(buffer,sizeof(buffer),"Today is %A,%B%d.%Y.",tlocal); printf("%s\n",buffer); FILE *log_file=fopen("mydiary.txt","a+"); if(log_file!=NULL){ fprintf(log_file,"%s\nWhat did I do today?\n",buffer); fclose(log_file); } else { perror("Failed to open log file"); } } int main(){ write_log(); return 0; } ``` 上面这个小程序每次运行都会追加当天日期行加上提示询问话语句进去形成条条清晰有序的时间轴轨迹保留下来供日后回忆查询所用十分方便实用哦!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值