关于js基础easy忘记的那些事儿

1.Number()

通过这个函数转化后的值仅仅有两个:数值和NaN,通过parseInt也能转化为数值。可是像“134df”转化后的值为134,而Number("134df")则是NaN;

2.String()

转化成字符的方法有两种:调用toString()和String(),通过String()转化后有5种类型:字符串;"true"或者"false";null;undefined;数值。

3.逻辑非!             非空非0非对象都是false

! 对象→false

! " "→true

! 非空字符串→false

! 0→true

! 非0数值→false

! NaN→true

! undefined→true

4.逻辑与 &&

  1. 假设第一个是对象。则返回第二个操作数
  2. 假设第二个是对象。则仅仅有在第一个是true的情况下才会返回第二个数
  3. 假设当中一个是null,则返回null
  4. 假设当中一个是NaN,则返回NaN
  5. 假设当中一个是undefined,则返回undefined

5.逻辑或 ||

  1. 假设第一个是对象,则返回第一个操作数
  2. 假设第一个是false,则返回第二个操作数
  3. 假设两个都是对象,则返回第一个操作数
  4. 剩下的NaN,undefined。null和逻辑与一样。不同的是这时须要两个操作数都是NaN或undefined或null

6.关系操作符(>,<,<=,>=)

  1. 假设两个操作数都是数值。那么直接比較
  2. 假设了两个操作数都是字符串,则比較字符串相应的字符编码值。而且大写字母的字符编码所有<小写字母的字符编码
  3. 假设一个操作数是数值,要把另外一个也转化为数值,然后比較
  4. 假设有一个是对象,则调用该对象的valueOf方法,没有的话调用toString方法,之后依据前面的规则进行比較
  5. 假设有一个是布尔值,则将其转化为数值进行比較
  6. 要比較之前 null和undefined不能被转化为其它值
  7. null = undefined
  8. NaN跟谁都不相等
  9. false == 0→true     true == 1→true   true == 2→false  null == undefined→true null == 0→false undefined == 0 →false

7.对象的变量名存放的不是对象而是对象的引用。对象放在堆上面

var obj = new Object();

var obj2 = obj;

obj2.name = "tom";

alert(obj.name);答案是tom,由于在赋值的时候实际上是把指向这个对象的引用赋值给了obj2,所以当当中一个改变时,另外一个的属性值也会改变,由于他们指向的是同一个空间;而var a = 10;

var b = a;则是简单的将a的值赋值给了b;

8.js垃圾收集方式有两种:标记清除 和 引用计数法。如今眼下的浏览器大多数使用的是标记清除法,可是ie什么的仅仅有在9之后才算全然使用。由于ie9之前的一些比方dom对象本身採用的是引用计数策略。所以即使使用的是标记清除,也仅仅是除了dom对象之外的其它原生的js对象採用的是这些。在ie9时进行了修复,把dom和bom转化成了原生的js对象,这时才是全然的标记清除。

循环引用:

var elem = document.getElementById("div);

var obj = new Object();

elem.someProperty = obj;

obj.someProperty = elem;因此造成了循环引用。为了解除循环引用我们能够在使用完成之后将其置为null,即elem.somePropery = null;obj.someProperty = null;

时间: 2024-10-14 06:13:47

关于js基础easy忘记的那些事儿的相关文章

js基础--javascript基础概念之语句

js基础--javascript基础概念之语句 ECMA-262定义了一组语句(流程控制语句) 语句定义了EMCAScript 语法. 常见的if语句. 语法: if(condition) statement1 else statement2 其中.Condition 可以是任意表达式.而且对这个表达式求值的结果不一定是布尔值.因为script 会自动调用boolean 将值转换为布尔值.如果condition 的值是 true .则执行statement1 语句  否则  执行 stateme

【 js 基础 】Javascript “继承”

是时候写一写 "继承"了,为什么加引号,因为当你阅读完这篇文章,你会知道,说是 继承 其实是不准确的. 一.类1.传统的面向类的语言中的类:类/继承 描述了一种代码的组织结构形式.举个例子:"汽车"可以被看作是"交通工具"的一种特例.我们可以定义一个 Vehicle 类和一个 Car 类来对这种关系进行描述.Vehicle 的定义可能包含引擎.载人能力等,也就是 所有交通工具,比如飞机.火车和汽车等都有的通用的功能描述.在对 Car 类进行定义的

js基础--javascript基础概念之语法

掌握一门语言 必须先掌握它的语法! javascript 的语法和C.Java.Perl 的语法有些相似.但是比它们更加宽松. javascript 中的一切都是严格区分大小写的.例如变量: demo 和 Demo 两个变量是完全不同的. javascript 标示符,所谓标示符 是指 变量.函数.属性 的名字或函数的参数.标示符的格式是按照以下规则组合的一个或多个字符. 1.第一个字符必须是字母,下划线,或 $ 符号. 2.其他字符可以是字母.下划线.$ . 或数字. 注意 不能把关键字 保留

js基础知识总结(2016.11.1)

js基础知识点总结 如何在一个网站或者一个页面,去书写你的js代码:1.js的分层(功能):jquery(tool) 组件(ui) 应用(app),mvc(backboneJs)2.js的规划():避免全局变量和方法(命名空间,闭包,面向对象),模块化(seaJs,requireJs) 常用内部类:Data Array Math String HTML属性,CSS属性HTML:属性.HTML属性="值":CSS:对象.style.CSS属性="值"; class和f

JS基础(超级简单)

1     JS基础(超级简单) 1.1 数据类型 1.1.1   基本类型: 1)        Number:特别注意:NaN的检测方法:Nan!=NaN;或者使用isNaN方法 2)        string 3)        boolean 4)        null 5)        undefined 1.1.2   复杂类型 object:date,array,function 1.2 变量 var 变量名=值 变量的作用域:1.全局:以页面为单位.2局部:以函数为单位.

js基础--javascript基础概念之数组(二)

js基础--javascript基础概念之数组 数组栈方法 数组可以像栈一样.栈是一种先进后出的数据结构,最先添加的数据最后一个出来.栈方法添加数据也称为 推入  移除数据称为 弹出. js为数值栈方法提供了 push()   和  pop() ;  两个方法. push() push() 方法接受参数就是你要添加进入到数组的值.push()  方法会将他们逐一添加到数组的末尾  数组的length属性会跟着更新数据. *push(多个数组元素值) 返回的修改后的数组长度 var array =

js基础--javascript基础概念之数组

js基础--javascript基础概念之数组 在ECMAScript 中 ,数组是很常用的数据类型,js中的数组和其他很多语言的数组有明显的区别.js的数组可以保持任何类型的数值,一个数组中可以保存着多个不同类型的数值.js数组大小(长度)是可以调整的.可以随着数据的添加自动增长数组长度. 创建数组: 一.数组字面量 数组字面量由一对包含数组项的方括号[]表示. var array = [ 'kin', 'cheong', 'change', 'hello', 'haha', 'hi' ];

js基础--javascript基础概念之语句(二)

js基础--javascript基础概念之语句(二)label,break,continue.. break .  continue 语句. break  continue 语句用于在循环中精确控制代码的执行,其中break语句会立即退出循环,执行循环后面的语句. continue 则退出循环后返回到再次进入循环中. 如: var num = 0; for(var i = 0; i<=100; i++){ if(i >= 10){ break; } num = i; } alert(num);

JS基础知识回顾:引用类型(一)

在ECMAScript中引用类型是一种数据结构,用于将数据和功能组织在一起,而对象时引用类型的一个实例. 尽管ECMAScript从技术上讲是一门面向对象的语言,但它不具备传统的面向对象语言所支持的类和接口等基本结构,所以虽然说引用类型与类看起来想死,但他们并不是相同的概念. 不过引用类型有的时候也可以被称为对象定义,因为他们描述的是一类对象所具有的属性和方法. 新对象是使用new操作符后跟一个构造函数来实现的,构造函数本身就是一个函数,只不过该函数时处于创建新对象的目的而定义的. ECMASc