前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >重新撸一遍javascript (一)

重新撸一遍javascript (一)

作者头像
lilugirl
发布2020-04-24 14:51:14
3930
发布2020-04-24 14:51:14
举报
文章被收录于专栏:前端导学前端导学

弱类型特性

数据类型

隐式转换

等于运算的规则

以下等于运算都为true

严格等于运算规则

包装对象

类型检测

typeof

instanceof

Object.prototype.toString

一个小练习

请编写arraysSimilar函数,实现判断传入的两个数组是否相似。具体需求:

1. 数组中的成员类型相同,顺序可以不同。例如[1, true] 与 [false, 2]是相似的。

2. 数组的长度一致。

3. 类型的判断范围,需要区分:String, Boolean, Number, undefined, null, 函数,日期, window.

当以上全部满足,则返回"判定结果:通过",否则返回"判定结果:不通过"。

表达式

原始表达式

复合表达式

数组 对象初始化表达式

函数表达式

属性访问表达式

调用表达式

代码语言:javascript
复制
func();

对象创建表达式

代码语言:javascript
复制
new Func(1,2);
new Object;

运算符

特殊运算符

条件运算符

c?a:b

代码语言:javascript
复制
var val? true?1:2  //1
逗号运算符

a,b

代码语言:javascript
复制
var val = (1,2,3); // val=3
delete运算符
in运算符
代码语言:javascript
复制
window.x=1;
'x' in window; // true
instanceof typeof运算符
代码语言:javascript
复制
{} instanceof Object; //true
typeof 100 === 'number'; //true

new运算符

this运算符
void运算符
代码语言:javascript
复制
void 0; // undefined
void(0); // undefined

语句

block块语句

函数作用域

var声明语句

var a=b=1;相当于隐式声明了全局变量b

try catch语句

代码语言:javascript
复制
try{
  throw "test";
} catch(ex){
  console.log(ex); // test
} finally {
  console.log('finally');
}
代码语言:javascript
复制
try{
  // do sth.
} finally {
  console.log('finally');
}

嵌套的情况

function语句

函数声明语句会被预先处理,称为函数前置,所以在声明前调用是可以的; 而函数表达式则不行

for ... in 语句

switch语句

with语句

不建议使用

严格模式

不允许用with
不允许未声明的变量被赋值
arguments变为参数的静态副本
delete参数 函数名报错
delete不可配置的属性报错
对象字面量重复属性名报错
禁止八进制字面量
eval agruments变为关键字 不能作为变量或函数名
eval独立作用域

其他特点

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 弱类型特性
  • 数据类型
  • 隐式转换
  • 包装对象
  • 类型检测
    • typeof
      • instanceof
        • Object.prototype.toString
        • 表达式
          • 原始表达式
            • 复合表达式
              • 数组 对象初始化表达式
                • 函数表达式
                  • 属性访问表达式
                    • 调用表达式
                      • 对象创建表达式
                      • 运算符
                        • 特殊运算符
                          • 条件运算符
                          • 逗号运算符
                          • delete运算符
                          • in运算符
                          • instanceof typeof运算符
                          • this运算符
                          • void运算符
                      • 语句
                        • block块语句
                          • var声明语句
                            • try catch语句
                              • function语句
                                • for ... in 语句
                                  • switch语句
                                    • with语句
                                      • 严格模式
                                        • 不允许用with
                                        • 不允许未声明的变量被赋值
                                        • arguments变为参数的静态副本
                                        • delete参数 函数名报错
                                        • delete不可配置的属性报错
                                        • 对象字面量重复属性名报错
                                        • 禁止八进制字面量
                                        • eval agruments变为关键字 不能作为变量或函数名
                                        • eval独立作用域
                                    领券
                                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档