当前位置: 首页 > news >正文

阮一峰JS基础读后感

1.阮一峰没讲的 2.阮一峰没讲清楚的 3.阮一峰讲的一般人听不明白

JavaScript有七种数据类型: 1.数值(number)类型
2.字符串(string)类型 3.符号(symbol)类型 4.布尔(boolean)类型 5.空(null)类型 6.未定义(underfined)类型 7.对象(object)类型 array,function同属于对象类型

number数值类型: 十进制的表示方法: 1; .1表示0.1 ;123=1.23e2 二进制表示的方法:0b11 表示为3 八进制表示方法:以0开头,小于8的数字 十六进制表示方法:0x开头,0-f(F) 使用JS存储数字的时候最好使用字符串,慎用0开头的数字。因为不小心可能转换成为八进制的数字

string字符类型: 字符串的表示方法:"你好",'你好'
' ' '表示为单引号'为转义符 '\n'表示为空格 '\t'表示为(tab)制表符 '\'表示为\符号 上述length都为1 (两种方法)多行字符串:

var s= ' 12345 \ 
         67890 \                //坑人语法
         12345 ' 
复制代码
var s = "123456+
         789012+                //好读的语法
         123456"
复制代码

注意:慎用第一种,主要要第二种 第一种\后面不能有空格,一但有空格会出错


es6之后适应多行有出现了一种新的语法,就是在以开头结束,其中第二行以后的字符应该与var对齐,否则就会出现错误(length长度不一样)

  var s = `123456
  7890123
  123456`
复制代码

注意:单引号和双引号应该是成对出现的。''(空)","(空格)" 空字符串和空格字符串不同,空字符串的长度为0,空格字符串的长度为1

boolean布尔类型: 布尔有两个值:false和true。凡是满足结果为false为true我们都可以说这种类型为布尔类型。 学会判断a&&b和a||b的运算

null空类型: 值只有一个,为null。表示什么也没有 underfined未定义类型: 值也是只有一个,underfined,也表示什么都没有 null和underfined具体区别? 1.变量没有值时,选择使用underfined 2.如果想有一个对象,现在还不想赋值,推荐使用null  如果有一个非对象,推荐初始化为underfined。 所以,一般null用于空对象,underfined用于非空对象


上述number,string,boolean,null,underfined,symbol都是简单对象,下面说的object为复杂数据类型,同时复杂类型是有简单类型所组成的。

object对象类型: 简单数据类型表示:

var name = "xiaoming"
var age  = 12
var gender = "male"
复制代码

复杂数据(object)类型:

var person = {  
  'name' : 'xiaoming',
  'age'  :18,
  'gender'  : 'male'
}
复制代码

对象的使用: 正确使用方法:person['name'] 错误使用方法:person[name] 因为一点在对象的前面声明 var name = xiaohong,后面就等价于person[xiaohong]而这样写明显是错误的

'':'小明',
9a:'xiaoming',
"9a":"小明"     
"a b":"小明"
//上面三种结果,很显然第一,三,四两种可以。第三种如果key没有"",要严格遵守标识符命名规则。
复制代码

如果person['name']满足标识符原则,那么可以使用person.name属性。其中, 这是一个特例。 delete person['name']与person.name = underfined的区别? 使用delete person['name']以后,person['name']=underfined,"name" in person则显示false。 相反,使用person['name']=underfined属性,只是初始化name的值,而使用"name" in person则显示false

for(var key in person){
  console.log(person[key])
}
// xiaoming
// 123
for(var in person){
  console.log(key,person[key])
}
// name xiaoming
// age  123
复制代码

介绍一下typeof xxx检测数据类型,一般七种类型结果用“ ”来表示,但是JS中也有两个bug typeof null类型值返回值为object typeof function类型返回值为function //很显然,七种类型值中并没有function类型,所以这两种需要单独记忆!

相关文章:

  • 图像缩放算法【转】
  • 回到网易后开源APM技术选型与实战
  • Firefox Quantum支持跨浏览器插件架构
  • 第 196 章 X Terminal
  • latex-参考文献在子文件夹
  • iOS Core Image 滤镜实践
  • 第 14 章 Network Communication
  • 从Windows迁移SQL Server到Linux
  • fastcgi协议之一:定义
  • 再论 ASP.NET 中获取客户端IP地址
  • 【译】移动应用开发:如何创建自定义Android代码模板
  • eclipse的工程中如何查找字符串
  • pfSense book:当被锁定在WebGUI之外时该怎么做
  • linux系统的7种运行级别
  • 详解Python中的下划线
  • [ JavaScript ] 数据结构与算法 —— 链表
  • centos安装java运行环境jdk+tomcat
  • classpath对获取配置文件的影响
  • Docker入门(二) - Dockerfile
  • ES6之路之模块详解
  • git 常用命令
  • Git学习与使用心得(1)—— 初始化
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • Linux中的硬链接与软链接
  • Objective-C 中关联引用的概念
  • vue总结
  • 初探 Vue 生命周期和钩子函数
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 如何优雅地使用 Sublime Text
  • 深入浅出Node.js
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 微信端页面使用-webkit-box和绝对定位时,元素上移的问题
  • 智能合约Solidity教程-事件和日志(一)
  • 回归生活:清理微信公众号
  • ​iOS实时查看App运行日志
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • #mysql 8.0 踩坑日记
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • (1)(1.13) SiK无线电高级配置(六)
  • (MATLAB)第五章-矩阵运算
  • (poj1.2.1)1970(筛选法模拟)
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (转载)CentOS查看系统信息|CentOS查看命令
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .net core使用RPC方式进行高效的HTTP服务访问
  • .NET 表达式计算:Expression Evaluator
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景
  • .net知识和学习方法系列(二十一)CLR-枚举
  • .project文件
  • @SentinelResource详解
  • [ 渗透测试面试篇 ] 渗透测试面试题大集合(详解)(十)RCE (远程代码/命令执行漏洞)相关面试题