[javascript]细节与使用经验

简介: 如果文中阐述不全或不对的,多多交流。

【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)

https://developer.aliyun.com/article/1440743

出自【进步*于辰的博客


纯文字阐述,内容比较干。并且,由于考虑到时间长了恐有所遗漏,便即兴记录,并没有对内容进行筛选、排序。因此,大家在阅读时可以直接 Ctrl + F 进行检索。

1、细节锦集

  1. ==表示“相等”,不考虑数据类型,如:1 == '1'为 true;而===表示“全等”,如:1 === '1'为 false;
  2. js中使用驼峰命名的原因:会将短横线(-)视为负号,故无连接作用;
  3. js 中的function中能被访问的有:参数、局部变量、嵌套function、全局变量、外部function的变量或其嵌套function
  4. 原始数据类型:String、number、boolean、null、undefined、symbol。前5种是基本数据类型,symbol表示唯一的值;
  5. Java数组长度不可变,而js中Array会自动扩展,即不存在溢出。定义var arr = new Array(3),此时arr长度为 3;执行arr[8] = xx,则arr长度变为 9。输出arr[5]undefined(声明但为定义);
  6. js中return后可以有语句(同级别),只是不会执行(即不进行解释,即便代码有误也不报错);
  7. $("xx").children()用于获取xx盒子的所有子盒子(js格式是xx.childNodes),$("xx").parentNode()用于获取父盒子;

2、关于 false

参考笔记一,P10.3;笔记二,P46.2。

  1. 0、false、undefined、null、""''、NaN 的 boolean 值都是 false,即0;其他为 true;
  2. [][null][undefined]都会隐式转换成'',且无论[]嵌套几层,都视为一层。与0比较,都为 true,因为''0的 boolean 值都是 false;

3、关于 null 与 undefined

参考笔记一,P10.9;笔记二,P43.1。

定义:

  1. undefined:全局变量、属性;
  2. null:字面量,不会被隐式赋值给对象,表示尚未创建的对象。


区别:

  1. undefined 派生于 null,都表示“无效的值”,故相等。但属于不同的原始数据类型,故不全等;
  2. null 与 number 作算术运算,会将 null 视为0;而 undefined 与 number 作算术运算,得NaN
  3. typeof null为 Object,typeof undefined为 undefined。


注意:

  1. 若变量已声明而未定义,则为 undefined。故若想变量为 null,必须定义为 null;
  2. function()无返回值时,强行调用获取返回值,得 undefined。


一个小技巧:

定义变量为 null,表示“空对象引用”。当需要将一个变量xx作为对象时,可如下:

var xx = null;// 初始化
......
xx = new Object;// 创建对象
......
if(xx == null)
......
xx = null;// 清除对象

通过比较变量xx是否为null来判断对象是否创建成功。

3、特殊指令

  1. typeof a:返回变量类型。同type(a)
  2. delete obj.name:删除对象objname属性;

4、特殊语句

摘要 参数说明 返回值类型/返回值 说明
with() 任何对变量或函数的引用都被认为是此对象的属性

4.1 with()

示例。

document.write(Math.sin())
// 等价于:
with(Math) {
  document.write(sin())
}

5、关于获取下拉框属性

参考笔记一,P12.1。

示例。

<select name="platform">
  <option value="p1">CSDN</option>
  <option value="p2">bilibili</option>
</select>

获取。

var sel = $("select[name=platform]")
var seli = sel.attr('selectedIndex')// 选中项的索引
var options = sel.attr('options')// 所有option的数组

最后

如果大家想要了解一些JS知识点,可查阅博文《Javascript知识点锦集》。

本文持续更新中。。。

相关文章
|
4月前
|
缓存 JavaScript 前端开发
如何编写高质量 JavaScript 代码 经验无保留分享
编写高质量JavaScript代码涉及易读性、性能和健壮性。保持代码格式统一,避免魔术数字,采用单一功能原则,减少嵌套。优化算法,利用内置方法,减少作用域链查找,避免重复代码。使用新语法增强健壮性,确保代码可扩展,避免副作用,整合逻辑关注点。注释、异常处理、测试等也是关键。
32 3
|
4月前
|
前端开发 JavaScript 容器
技术经验解读:个人练习:使用HTML+CSS3制作图片轮播功能(不使用JavaScript)
技术经验解读:个人练习:使用HTML+CSS3制作图片轮播功能(不使用JavaScript)
56 0
|
5月前
|
监控 前端开发 JavaScript
javascript 异常处理的一些经验
为了提升应用稳定性,我们对前端项目开展了脚本异常治理的工作,对生产上报的js error进行了整体排查,试图通过降低脚本异常的发生频次来提升相关告警的准确率,结合最近在这方面阅读的相关资料,尝试阶段性的做个总结,下面我们来介绍下js异常处理的一些经验。
|
监控 前端开发 JavaScript
javascript 异常处理的一些经验
为了提升应用稳定性,我们对前端项目开展了脚本异常治理的工作,对生产上报的js error进行了整体排查,试图通过降低脚本异常的发生频次来提升相关告警的准确率,结合最近在这方面阅读的相关资料,尝试阶段性的做个总结,下面我们来介绍下js异常处理的一些经验。
javascript 异常处理的一些经验
|
3月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
81 2
|
3月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的宠物援助平台附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的宠物援助平台附带文章源码部署视频讲解等
73 4
|
3月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的宠物交易平台附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的宠物交易平台附带文章源码部署视频讲解等
63 4
|
3月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的大学生入伍人员管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的大学生入伍人员管理系统附带文章源码部署视频讲解等
84 4
|
3月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的小区物流配送系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的小区物流配送系统附带文章源码部署视频讲解等
89 3
|
3月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp宿舍管理系统的附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp宿舍管理系统的附带文章源码部署视频讲解等
72 3