欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

js小知识点

程序员文章站 2022-07-14 11:43:20
...

 文化

 

  • javaScript是解释性语言,c c++ 是编译性语言  java是oak语言
  • 解释性: 读一行执行一行
  • 主流浏览器内核: 
  • IE: trident
  • chrome: webkit/blink
  • firefox: Gecko
  • Opera: presto
  • Safair:    webkit

原始值不可改变: 声明一个变量之后,如果给这个变量赋予一个新值,那么会把之前的销毁掉,在内存中重新开辟内存来存
使用typeOf的时候如果是未定义的变量是不会报错的如果 typeOf(a)


try...catch

try {

} catch (e) {

}

 

  • e是一个对象,含有name和message两个属性
  • 错误类型:
  • ReferenceError: 非法或者不能识别的引用值 
  • SyntaxError: 发生语法解析错误
  • TypeError: 操作数类型错误
  • URLError: URL处理函数使用不当


es3.0  和  es5.0冲突

  • 浏览器默认是启用的是es3.0
  • 启用es5.0: 'use strict' 放在整个页面的最顶端  或者局部的最顶端比如一个函数
  • 默认是使用es3.0 + es5.0新增的方法去执行的, 但是es5.0和es3.0有冲突的部分,不启用严格模式默认使用的是es3的,如果他们俩产生冲突的
  • 部分需要使用es5的,那么就需要启用严格模式。
  • 不支持with,arguments.callee,func.caller,变量赋值前必须声明,
  • 局部this必须被赋值(Person.call(null/undefined) 赋值什么就是什么),拒绝重复属性(object)和参数(function)

字符串

  • var str = new String("foo")
  • console.log(str) // 一个对象{ '0': 'f', '1': 'o', '2': 'o'}
  • var bool = new Boolean(true)
  • console.log(bool) //Boolean { true }  但是bool不等于true
  • var number = new Number(111)
  • console.log(number)//Number { 111 }   但是number不等于111

多行模板字符串:

console.log("string text line 1\n\
string text line 2");
// "string text line 1
// string text line 2"


为了实现同样效果的多行字符串, 现在可以写成如下形式:

console.log(`string text line 1
string text line 2`);
// "string text line 1
// string text line 2"

数字

  • 数字在 JavaScript 中均用浮点数值表示
  • parseInt() 第一个参数是要转的字符串,第二个是该参数对应的进制
  • parseFloat()只应用于解析十进制数字
  • 单元运算符 + 也可以把数字字符串转换成数值  例如  + "42" === 42
  • parseInt parseFloat和 单元运算符 + 的区别:
  • parseInt() 和 parseFloat() 函数会尝试逐个解析字符串中的字符,直到遇上一个无法被解析成数字的字符,然后返回该字符前所有数字字符组成的数字。
  • 使用运算符 "+" 将字符串转换成数字,只要字符串中含有无法被解析成数字的字符,该字符串都将被转换成 NaN
  • 例如: parseInt("10.2abc",10) = 10  parseFloat("10.2abc",10) = 10.2 而 + "10.2abc" = NaN
  • 布尔
  • false、0、空字符串("")、NaN、null 和 undefined 被转换为 false
  • 所有其他值被转换为 true
  • JavaScript 会在需要一个布尔变量时隐式完成Boolean("value")这个转换操作
  • typeof Boolean(value) === boolean //true