[javascript]细节与使用经验
【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)
https://www.cnblogs.com/cnb-yuchen/p/18031957
出自【进步*于辰的博客】
纯文字阐述,内容比较干。并且,由于考虑到时间长了恐有所遗漏,便即兴记录,并没有对内容进行筛选、排序。因此,大家在阅读时可以直接Ctrl + F进行检索。
1、细节锦集
==
表示“相等”,不考虑数据类型,如:1 == '1'
为 true;而===
表示“全等”,如:1 === '1'
为 false;- js中使用驼峰命名的原因:会将短横线(
-
)视为负号,故无连接作用; - js 中的
function
中能被访问的有:参数、局部变量、嵌套function
、全局变量、外部function
的变量或其嵌套function
; - 原始数据类型:String、number、boolean、null、undefined、symbol。前5种是基本数据类型,
symbol
表示唯一的值; - Java数组长度不可变,而js中
Array
会自动扩展,即不存在溢出。定义var arr = new Array(3)
,此时arr
长度为 3;执行arr[8] = xx
,则arr
长度变为 9。输出arr[5]
为undefined
(声明但为定义); - js中
return
后可以有语句(同级别),只是不会执行(即不进行解释,即便代码有误也不报错); $("xx").children()
用于获取xx
盒子的所有子盒子(js格式是xx.childNodes
),$("xx").parentNode()
用于获取父盒子;
2、关于 false
参考笔记一,P10.3;笔记二,P46.2。
- 0、false、undefined、null、
""
、''
、NaN 的 boolean 值都是 false,即0
;其他为 true; []
、[null]
、[undefined]
都会隐式转换成''
,且无论[]
嵌套几层,都视为一层。与0
比较,都为 true,因为''
和0
的 boolean 值都是 false;
3、关于 null 与 undefined
参考笔记一,P10.9;笔记二,P43.1。
定义:
undefined
:全局变量、属性;null
:字面量,不会被隐式赋值给对象,表示尚未创建的对象。
区别:
- undefined 派生于 null,都表示“无效的值”,故相等。但属于不同的原始数据类型,故不全等;
- null 与 number 作算术运算,会将 null 视为
0
;而 undefined 与 number 作算术运算,得NaN
; typeof null
为 Object,typeof undefined
为 undefined。
注意:
- 若变量已声明而未定义,则为 undefined。故若想变量为 null,必须定义为 null;
- 当
function()
无返回值时,强行调用获取返回值,得 undefined。
一个小技巧:
定义变量为 null,表示“空对象引用”。当需要将一个变量xx作为对象时,可如下:
var xx = null;// 初始化
......
xx = new Object;// 创建对象
......
if(xx == null)
......
xx = null;// 清除对象
通过比较变量xx是否为null
来判断对象是否创建成功。
3、特殊指令
typeof a
:返回变量类型。同type(a)
;delete obj.name
:删除对象obj
的name
属性;
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知识点锦集》。
本文持续更新中。。。
https://www.cnblogs.com/cnb-yuchen
[javascript]细节与使用经验的更多相关文章
- Html,Css,Dom,javascript细节总结
最近愈发觉得基础的重要性,细节决定成败,所以希望能够将自己注意到的搜集到的一些关于前端的小细节小知识整理出来,更好的方便自己记忆回顾. 1.在构建网页Html框架时,尽量只给外层标记(即是父标记)定义 ...
- 开篇----JavaScript细节的那些事儿
JavaScript现在已经是全世界浏览器通用的语言,目前也完全可以在服务器端做开发,如Node.js,市面上好的JavaScript的书有很多,有的还是经典之作,值得收藏. 趁此东风,打算接下来写一 ...
- 我所了解的javaScript细节
变量转换 var myVar = "3.14159", str = ""+ myVar,// to string int = ~~myVar, // to in ...
- JavaScript细节整理
JavaScript是一个绝冠全球的编程语言,可用于Web开发.移动应用开发(PhoneGap.Appcelerator).服务器端开发(Node.js和Wakanda)等等.JavaScript还是 ...
- JavaScript细节成败
1.var 众所周知var用来定义变量 如 undefined,number,string,bool,array,function,object,null. 但有时候为了省事,就会出现一些内存泄露的情 ...
- Javascript 细节优化技巧(转)
break 语句和 continue 语句 break语句和continue语句都具有跳转作用,可以让代码不按既有的顺序执行. break语句用于跳出代码块或循环. var i = 0; while( ...
- JavaScript 原型 prototype 使用经验
初始化一个父类,并添加方法 1function Foo(){}2Foo.prototype.sayName = function(){3 return '初始原型';4}56var foo1 = ...
- JavaScript细节
1.关于全局变量 全局变量在所有的作用域中都是可见变量.当程序小,代码量小的时候,可能还便于维护,而随着程序越来越复杂,代码量也随之越来越大后,过多的全局变量会变的很难处理.因为一个全局变量可以被程序 ...
- 从零开始学习jQuery(剧场版) 你必须知道的javascript
原文:从零开始学习jQuery(剧场版) 你必须知道的javascript 一.摘要 本文是jQuery系列教程的剧场版, 即和jQuery这条主线无关, 主要介绍大家平时会忽略的一些javascri ...
- Vue vs React: Javascript 框架之战
https://baijiahao.baidu.com/s?id=1608210396818353443&wfr=spider&for=pc 原文档 正如我们之前提到的,Word ...
随机推荐
- .net core微服务之网关
网关: 一:apisix doc:https://apisix.apache.org/zh/docs/apisix/getting-started/README/ github:https://git ...
- 2024 SICTF Round#3出题 crypto misc osint
有幸参与了本次比赛crypto misc OSINT出题,难易程度循序渐进,下面记录一下本人题目题解(( 比赛网址:https://yuanshen.life/ CRYPTO SuperbRSA(85 ...
- k8s-权限管理
目录 1. 身份认证 node节点操作 创建普通用户并授权 1. 生成私钥 2. 生成zhangsan用户证书请求文件 3. 为zhangsan用户颁发证书 4. 创建命名空间及pod 5. 创建角色 ...
- springboot+vue+elementui实现文件上传下载删除DEMO
说明 前面搜索了几个关于springboot+vue+elementui上传下载的文章,感觉写的都不尽如人意.要么是功能不完善,不好用.再者就是源码提供的实在差劲,都不完整.一气之下,自己搞了一个实用 ...
- 使用base标签解决Thymeleaf页面获取项目路径问题
问题说明 写博客页面在发表博客后我想跳转到博客详情页.这里面我用到了:window.location.href="localhost:8080/post/detail/123"; ...
- 【Android逆向】修改so文件方式修改程序行为
1. 还是之前的那个apk 链接:https://pan.baidu.com/s/1vKC1SevvHfeI7f0d2c6IqQ 密码:u1an 尝试使用 010Editor来修改so文件 2. 使用 ...
- 利用wiile双层循环打印各种星星---day06
# 十行十列小星星 j = 0 #定义行数 while j<10: #当行数小于10的时候 i=0 #定义列 while i <10: #当列小于10的时候 print('*',end=' ...
- 网络安全-Linux常用命令
安装上传下载的软件包 yum install lrzsz -y 下载:linux-->windows sz -y /etc/hosts 上传:windows-->linux rz -y 系 ...
- Html飞机大战(十五): 上线
好家伙, 我的飞机大战部署上线了 胖虎的飞机大战 感兴趣的可以去玩一下 (怕有人接受不了这个背景,我还贴心的准备切换背景按钮,然而这并没有什么用) 现在,我们停下脚步,重新审视这个游戏 ...
- Html飞机大战(十一): 飞机撞毁爆炸
好家伙,这篇写英雄撞机爆炸 我们先把子弹销毁弄上去 子弹穿过敌机,敌机爆炸后消失,子弹同样也应该销毁,(当然后续会考虑穿甲弹) 然后我们还要把主角碰撞爆炸检测也加上去 因为他们共用一个思路 ...