js小知识点

 文化

  • 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
     

猜你喜欢

转载自blog.csdn.net/Her_smile/article/details/80636767