Javascript基础之操作符

算法研
• 阅读 1111

==

1.string,number,boolean 转成number比较
2.引用类型与基本类型比较

首先会调用对象的valueOf()方法,期待返回一个基本类型的值(测试为若返回Boolean、Number、String、null、undefined或没有返回值,则将不会继续调用toString方法),若返回的仍然是一个复合对象的话,则调用其toString()方法,若仍然没有返回上述基本类型的话,则直接判为不相等。

>,<

1.有一个为number => number
2.有一个操作数是布尔值 => number
3.有引用类型

调用该对象的valueOf方法,用返回的结果用前面的规则比较,若没有valueOf方法,则调用toString方法

valueOftoString
1.对象为Sting, 优先调用toString
2.对象为number,优先调用valueOf

优先级:valueOf > toString

~

-1的取反操作等于0

var str = '123456'
if(~str.indexOf(0)) return  // 如果不包含0,返回
~~: 是按位取反的意思,可以用来强制转int, 向下取整

&

  • 偶数 & 1 = 0
  • 奇数 & 1 = 1

new操作符

new操作符干了以下三步:

  1. 先创建了一个新的空对象
  2. 然后让这个空对象的__proto__指向函数的原型prototype
  3. 将对象作为函数的this传进去, 或者如果return 出来东西是对象的话就直接返回 return 的内容,没有的话就返回创建的这个对象
function Person1(name){
    this.name = name;
}
function Person2(name){
    this.name = name;
    return this.name;
}
function Person3(name){
    this.name = name;
    return new String(name);
}
function Person4 (name){
    this.name = name;
    return function () {
    }
}
function Person5(name){
    this.name = name;
    return new Array();
}
const person1 = new Person1("yuer");//Person1 {name: "yuer"}
const person2 = new Person2("yuer");//Person2 {name: "yuer"}
const person3 = new Person3("yuer");//String {0: "y", 1: "u", 2: "e", 3: "r", length: 4, [[PrimitiveValue]]: "yuer"}
const person4 = new Person4("yuer");//function() {}
const person5 = new Person5("yuer");//[]
点赞
收藏
评论区
推荐文章
晴空闲云 晴空闲云
3年前
javascript实践教程-05-数据类型
本节目标1.掌握js中7种数据类型。2.掌握5种基本数据类型number、string、boolean、null、undefined的声明。3.掌握js中数组的声明和数组相关的方法。4.掌握js中对象的声明和属性、方法的使用。内容摘要本篇介绍了js中的7种数据类型,其中5种基本数据类型:number、string、boolean、null、unde
Souleigh ✨ Souleigh ✨
4年前
JS - typeof 与 instanceof
一、typeoftypeof操作符返回一个字符串,表示未经计算的操作数的类型使用方法如下:typeof operandtypeof(operand)operand表示对象或原始值的表达式,其类型将被返回举个例子typeof 1 // 'number'typeof '1' // 'string'
Jacquelyn38 Jacquelyn38
4年前
你不可不知的JS面试题
1、JS中有哪些内置类型?7种。分别是boolean、number、string、object、undefined、null、symbol。2、NaN是独立的一种类型吗?不是。NaN是number类型。3、如何判断是哪个类型?Object.prototype.toString.call(),返回为\objectType\。现在我们来验证一下
Jacquelyn38 Jacquelyn38
4年前
你不可不知的JS面试题(第一期)
1、JS中有哪些内置类型?7种。分别是boolean、number、string、object、undefined、null、symbol。2、NaN是独立的一种类型吗?不是。NaN是number类型。3、如何判断是哪个类型?Object.prototype.toString.call(),返回为objectType。现在我们来验证一下。Objec
九旬 九旬
2年前
函数参数传递
函数参数传递在JavaScript中函数传参,分为两种:基础类型(Number、String、Boolean..)引用类型(Object、Array、Funcion..)基础类型传参看下面的例子:js
明月 明月
3年前
JS数据类型的几种判断方法
1.typeof(常用)typeof是一个运算符,返回值是一个字符串,用来说明变量的数据类型,可以用来判断number,string,object,boolean,function,undefined,symbol这七种类型.2.instanceof(知道即可)instanceof运算符用于检测构造函数的prototype属性是否出现在某个实例对象的原型链上,返回值为布尔值,用于指示一个变量是否属于某个对象的实例3.Object.prototype.to
Jacquelyn38 Jacquelyn38
4年前
面试官:JavaScript的数据类型你了解多少?
前言作为JavaScript的入门知识点,Js数据类型在整个JavaScript的学习过程中其实尤为重要。最常见的是边界数据类型条件判断问题。我们将通过这几个方面来了解数据类型:概念检测方法转换方法概念undefined、Null、Boolean、String、Number、Symbol、BigInt为基础类型;Ob
LinMeng LinMeng
4年前
js之传值与传址/undefined和null/严格模式
传值与传址基本数据类型有五种Undefined、Null、Boolean、Number和String引用数据类型有两种object,array,fn两种数据类型的区别:1.存储位置不同原始数据类型直接存储在栈(stack)中简单数据段,占据空间小,大小固定,属于被频繁使用的数据,所以存储在栈中;引用数据类型直接存
劳伦斯 劳伦斯
4年前
前端面试题自检 JS CSS 部分
JS类型JavaScript的简单数据类型Number,String,Boolean,Undefined,Null,Symboltypeof操作符的返回值numberstringbooleanundefinedobjectfunction
Stella981 Stella981
3年前
JavaScript的深拷贝和浅拷贝
一、数据类型数据分为基本数据类型(String,Number,Boolean,Null,Undefined,Symbol)和对象数据类型。、1.基本数据类型的特点:直接存储在栈(stack)中的数据2.引用数据类型的特点:存储的是该对象在栈中引用,真实的数据放在堆内存里。引用数据类型在栈中存储了指针,该指针指向堆中该实
Stella981 Stella981
3年前
JavaScript学习小结
JavaScirpt变量可用来保存两种类型值:基本类型值,引用类型值基本类型值:Undefined,Null,Boolean,Number,String基本类型及引用类型值特点:1.基本类型值在内存中占据固定大小的空间,被保存在栈内存中;2.从一个变量向另一个变量复制基本类型值,会创建这个值的一个副本;