javascript知识点记录01

 

 1.typeof null = "object" 底层判断机制上的一个小bug(因为对象的二进制前三位为0,null的所有位都是0)

  referenceError与typeError:

  referenceerror(声明都没) undefined (声明了没有赋值) 与 typeerror(对undefine的函数名做执行()时)

 

 

2.不同数据类型的加加减减

  true+1=2(true先转成了1)

  1+“aa”="1aa"(向上转)

  null+2=2;(nullz转成了0)

  2+NAN=NAN(和不是数字做运算)

  100-“1”=99(除了 + 是字符串拼接,其余都是转为number)

  100-"1a"   NaN   no a number
  1++"2"=3 相当于把字符串转成了数字
  int(‘1a’)是转不动的,要用parseInt('1a')=1


3.作用域(一)

1.var(或者默认)的变量有一个向上查找的过程,找到即可,不约束于代码块。
2.欺骗语法,eval和with一定不要用,一定有不用eval可以解决的方案。
3.eval用过地方的记录:
(1).ajax接收服务端数据时,如果服务器端返回的是json,但是我接收的还是string,要把他转化一下。 data = eval("(" + data + ")");
(2)好吧这个地方也不要这样,用 JSON.parse(str)
(3)也就是说,忘记掉eval吧。(用处没必要,而且影响性能,如果代码中大量使用 eval(..) 或 with,那么运行起来一定会变得非常慢。)

4.作用域(二)1.js只有函数可以限制作用域,函数里的变量函数外面无法使用的。(前提是var声明的,不var的话相当于window.a,那就是全局的)

let 关键字可以将变量绑定到所在的任意作用域中
默认所有的变量都是window对象的属性,默认地不写了。
使用var关键字声明的变量还在所有代码执行之前被执行,没写var的话就没有声明提前。
引出一个小东西:(函数的声明提前)
fun1();//没错,最前面声明定义好了
fun2();//错的,var声明了变量fun2,但是还没有赋值,所以对一个undefined变量当做函数执行时不对的。
function fun1(){
   
}
var fun2=funnction(){
   
}
why:因为fun2是var声明的,所以提前了,但是还没有赋值,因此是undefined,所以undefined不是一个函数,无法执行。
使用function fun1(){}创建的函数,会在所有代码执行之前被创建。
 
2.函数形式调用,this就是window
对象方法形式调用,this就是obj对象。
3.不要在块内声明函数
   

5.函数

1.函数也是对象!!!
2.函数的两种表达:
(1)function f1(){}
(2) var f2=function(){}-----函数表达式------->匿名函数给一个变量。
3.解析器不会检查实参的数量,多余的实参不会被赋值,给就给不用了。
4.实参可以是任意的,函数也可以作为实参。
有这么一操作,将匿名函数作为参数传给某个函数。
5.返回值也可以是任意的,包括可以返回函数。
6.IIFE(立即执行函数)
(function(){console.log('aaa')})(),执行一次就扔掉了,没必要用变量去保存它。
7.for x in obj 遍历对象可以遍历它的属性与方法
值得注意的是,obj.XX,XX不能是变量,所以应该使用obj[n];
8.this 对象调this就是对象,函数形式调的话就是windows
9.call apply arguments 三者:
一般来说,this总是指向调用某个方法的对象,但是使用call()和apply()方法时,就会改变this的指向。
   不同点:接收参数的方式不同。call (a1,a2...apply([1,2,3,4])
example:
var color='red';
var obj={'color':'blue'};

function test() {
   console.log(this.color);
}

test(); //red
test.call(obj);//blue

arguments[0],arguments[1].......


6.对象

1.除基本数据类型之外的都是对象(包括函数)
2.对象跟函数的定义方式差别不大,只是调用时多一个new
3.对象的原型属性
4.学好js,必须搞清楚: 对象-函数-闭包 三者之间的种种关系。
5.内建对象(看w3c手册,比如数组) 数组对象 自定义对象
6.

7.数组

1.数组也是对象,属性就是0,1,2,3,4。。。
2.字面量创建:var a=[1,2,3,4,5];
3.js的数组不规定数据类型的相同,是一个强大的容器。
常用方法:push(后面添加)pop(往后删除,返回最后一个)
unshift(向前加) shift(向前删除)
属性方法还是多用,不断看手册积累,一般你想要的功能他都有。如果没有自己写一个也是没有问题的,比如:
a=new Array();
a.jump=function (step) {
  for(var i=0;i<this.length;i=i+step)
      console.log(this[i]);
}
a.jump(2);
4.a.foreach(function(a,b,c)); //(a是值,不是index,c是完整的)
5.slice 函数(a,b) 从a开始不包括b,第二个参数不写的话,全部。负数代表从后往前,-1代表倒数第一个
6.splice会影响到原数组,slice不会。参数1:开始位置索引,参数2:删除的数量。参数3及以后:用什么替换。
7.contat(合并多个数组) join(数组转字符串)
8.sort函数自定义排序sort(function(a,b){
1:排前面 -1排后面
}




8.声明与赋值(提升)

1.var 声明的变量会被提前
2.函数也会被提前,但是函数表达式不会。
foo(); // 不是 ReferenceError, 而是 TypeError!
  var foo = function bar() {
    // ...
  }; 错的
  function foo() {
    var a;
    console.log( a ); // undefined
    a = 2;
  }
  foo(); 对的。

9.字符串

字符串底层是字符数组的形式存储的。
属性:length,
方法:charAt()//返回指定位置的字符 不如 s[0],s[1]
charCodeAt()//字符的unicode编码
concat()//连接字符串 不如 + 号就行
indexOf()检索字符串,返回index


10.正则表达式(在线正则生成+API文档)

re = / /

re.test();

[]==或

{}==次数 {1,3}-->1到3次
^开头 $结尾
例如 手机号码: /^1[3-9][0-9]{9}$/
*** 字符串里用到的正则:serach repalce(/name is csz/i,'name is lc');

 

转载于:https://www.cnblogs.com/CszShuzi/p/9942158.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是 JavaScript知识点树状图: ``` JavaScript 基础语法 变量 运算符 控制结构 函数 类型 对象 数据类型 字符串 数字 布尔值 null 和 undefined 数组 对象 高级语法 闭包 this 关键字 原型和原型链 扩展运算符 解构赋值 箭头函数 类 模板字符串 迭代器和生成器 解构 浏览器 API DOM 操作 BOM 操作 事件 表单 历史 存储 媒体 动画 地图 语音 图像 视频 音频 第三方库 jQuery AngularJS React Vue.js Node.js Express Socket.io ``` 上面的知识点树状图仅提供了 JavaScript 的主要知识点,并不能完全覆盖 JavaScript 的所有内容。有关 JavaScript 的更详细信息,建议参考官方文档或其他教程。 ### 回答2: JavaScript知识点树状图可以按照主题和细分领域进行组织和展示。以下是一个基本的JavaScript知识点树状图: - JavaScript基础语法 - 变量 - 数据类型 - 运算符 - 条件语句 - 循环语句 - 函数 - 对象 - DOM操作 - 元素选择 - 元素属性修改 - 元素样式修改 - 事件处理 - 动态创建和删除元素 - AJAX技术 - XMLHttpRequest对象 - 响应处理 - 异步请求 - JSON数据处理 - ES6新特性 - 箭头函数 - 解构赋值 - 模板字符串 - Promise - 类和继承 - 前端框架 - Angular - React - Vue - 浏览器对象模型(BOM) - 窗口对象 - 历史记录对象 - 定时器 - 弹窗提示 - 地理位置 - 常用库和工具 - JQuery - lodash - webpack - Babel - 前端安全 - XSS攻击 - CSRF攻击 - 防御措施 - HTTPS协议 这个树状图只涵盖了JavaScript的基础知识和一些常用的扩展知识点。随着JavaScript的不断发展和更新,还有许多其他的知识点和工具可以添加到这个树状图中。对于初学者来说,理解和掌握这些基本知识点是很重要的,它们将构建一个坚实的JavaScript编程基础。 ### 回答3: JavaScript知识点树状图可以按照以下方式组织: 1. 基础知识: - 数据类型:包括数字、字符串、布尔值、数组、对象和函数等;还有特殊的null和undefined。 - 运算符:包括算术运算符、比较运算符、逻辑运算符和位运算符等。 - 控制流程:包括条件语句(if-else语句、switch语句)、循环语句(for循环、while循环)和异常处理等。 - 函数:包括函数的定义、调用、参数、返回值和作用域等。 - 对象:包括对象的创建、属性的访问和修改、对象的方法等。 2. 高级特性: - 原型和原型链:包括对象的原型、原型链的继承和对象的属性查找等。 - 闭包:定义和使用闭包函数。 - 异步编程:包括回调函数、Promise、异步操作和事件循环等。 - ES6新特性:包括箭头函数、模块化、解构赋值和类等。 3. 浏览器相关: - DOM操作:包括节点查找、节点操作和事件处理等。 - BOM操作:包括窗口大小、历史记录、cookie和定时器等。 - AJAX:包括XMLHttpRequest对象、发送请求和处理响应等。 - jQuery:包括选择器、动画效果和事件处理等。 4. 其他: - 错误处理:包括try-catch语句和抛出异常等。 - 正则表达式:包括正则的创建、匹配和替换等。 - 调试技巧:包括使用控制台和调试工具等。 这只是一些主要的知识点,实际上JavaScript还有很多其他的特性和相关知识。对于不同的学习者来说,他们可以根据自己的需求和学习进度来选择性学习这些知识点。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值