1.变量
  var num=10;
   
  var num1,num2,num3;
  num1=10;
  num2=20;
  num3=30;
   
  var num1=10,num2=20,num3=30;
   
  注意点:
  console.log(a); //报错
  var b;
  console.log(b); //undefined
  c=10;
  console.log(c); //10 会默认为全局变量,正常输出,不推荐这种写法
   
   
  2.数据类型
  var num=10; //数值类型
  var str='123'; //字符串类型
  var flag=true; //布尔类型
  var obj = {} //对象类型,默认值null
  var undefined = undefined; //未定义类型
   
  数据类型的转换:
  转换成字符串类型:
  str.toString() //大部分类型都有toString()方法
  String(str) //undefined,null等特殊值,需要用到String()
  转换成数值类型:
  parseInt() 123.123abc // 123
  parseFloat() 123.123abc //123.123
  Number() 123.123abc //报错
  转换成布尔类型:
  Boolean()
  转换为false的五种情况: 0 '' null undefined NaN
  其他的值都转换为true: 非0和非空都为true
   
  隐式转换:
  任意类型+ 字符串 会转换为字符串
  任意的类型 - * / 会转换为数值
   
  特殊情况:
  NaN : 不是一个数字
  isNaN(); 不是人
   
  数据类型检测:
  typeof str
   
  3.条件判断
  单向判断
  if(条件满足){
  //执行语句
  }
   
   
  双向判断
  if(条件满足){
  //执行语句
  }else{
  //条件不满足执行
  }
   
  多向判断
  if(条件1满足){
  //执行语句1
  }else if(条件2满足){
  //执行语句2
  }else if(条件3满足){
  //执行语句3
  }else{
  //以上都不满足,执行这里
  }
   
   
  精准判断
  switch(条件){
  case 条件1:
  语句1;
  break;
  case 条件2:
  语句2;
  break;
  default:
  最后的语句;
  break;
  }
   
  三元运算符
  条件 ? 条件满足返回 : 条件不满足返回
   
  总结:
  if和switch的区别?
  if适合用于确定范围的判断
  switch适合用于确定的具体值判断
  2.switch的注意点
  switch的条件比较是全等(===)
  break可以省略,但是会穿透执行.
   
  4.循环
  循环都必须有三个条件: 开始条件,条件范围,条件增量
  for循环
  var sum=0;
  for(var i=1; i<=100; i++){
  sum+=i;
  }
   
  while循环
  var sum = 0;
  var i=1;
  while(i<=100){
  sum+=i;
  i++;
  }
   
   
  do-while循环
  var sum =0;
  var i=1;
  do{
  sum+=i;
  i++;
  }while(i<=100)
   
   
  总结:
  1.三种循环之间的区别?
  for适用于循环次数确定的情况,while和do-while适用于循环次数未知的情况
  while是先判断,再执行, do-while是先执行一次,再判断
   
  2.continue 和 break
  continue 跳过当前循环
  break 跳出整个循环
   
  5.数组
  var arr=[]; 数组的基本语法
  var arr[1,2,3,4,5]; 数组可以存多个值,建议存同类型的值,但是可以存任意类型的值.
  arr.length 数组的长度
   
  arr[0] 表示数组中的第一个元素
  arr[1] 表示数组中的第二个元素
   
  arr[0]=10; 表示将数组中的第一个元素修改或者赋值为0
   
  动态增加数组 arr[arr.length]
   
   
  6.函数
  函数的作用: 封装功能,可以复用.
  函数的语法: 定义 + 调用
  函数的定义:
  function 函数名(参数){
  //执行语句
   
  return 结果;
  }
  函数的调用:
  函数名(值); //可以将函数的返回值存到变量中使用
   
  形参: 函数定义的时候的参数,本质上是一个局部变量
  实参: 函数调用的时候的参数,需要传入一个具体的值.
  注意; 形参和实参建议一一对应
   
  内置实参对象: arguments 使用中括号数组的方式获取实参
   
  函数的其他写法:
  匿名函数: function(){}
  函数表达式: var fn=function(){} fn();
  自调用函数: (function(){})()
   
   
  7.对象
  对象: 就是将现实事物抽象为功能代码. 将现实世界的东西,用对象的语法格式来表示.
  对象的语法: 对象中有属性和方法
  对象的三种写法:
  1.字面量写法
  var zs={
  name:'张三',
  age:18,
  sayHi:function(){
  console.log("你好");
  }
   
  }
  zs.name
  zs.age
  zs.sayHi()
   
  2.new Object()写法
  var zs = new Object();
  zs.name='张三';
  zs.age=18;
  zs.sayHi=function(){}
   
  3.构造函数写法
  function Person(name,age){
  this.name= name;
  this.age=age;
  this.sayHi=function(){}
  }
  var zs = new Person('张三',18);
   
  对象的遍历: for-in
  for(var key in Obj){
  console.log(key+'--'+Obj[key]);
  }
   
   
   
  8.内置对象
  Math对象 : 数学对象 Math.random() Math.floor() Math.ceil() Math.max() Math.min()
  任意区间随机数公式:Math.floor(Math.random() * (max - min + 1) + min);
   
  Date()时间对象:
   
  var date = new Date(); //获取当前时间
  var date = new Date('2018-8-8 12:12:12'); //获取当前时间
  var date = new Date('2018/8/8'); //获取当前时间
  var date = new Date(2018,7,6); //获取时间,月份会大1 ,7 表示8月份
   
  1.先转换成毫秒,然后再转换成年月日,时分秒
  date.getTime()
  date.Valueof()
  date.now()
  2.通过对象的内置方法,直接获取年月日,时分秒
  date.getFullYear(); //年
  date.getMonth(); //月 0 一月份 1 二月份
  date.getDate(); //日
  date.getDay(); //星期几, 0 周日 1周一 6周六
   
  date.getHours(); //小时
  date.getMinutes(); //分钟
  date.getSeconds(); //秒数
   
  3.会计算时间差.
  1.毫秒相减 ,除以1000,变成秒数差
  2.计算天,时,分,秒
  d = parseInt(总秒数/ 60/60 /24); // 计算天数
  h = parseInt(总秒数/ 60/60 %24) // 计算小时
  m = parseInt(总秒数 /60 %60 ); // 计算分数
  s = parseInt(总秒数%60); // 计算当前秒数
  3.判断是否个位数,然后补0
  h = h<10? '0'+h : h;
   
  字符串对象
  1.indexOf(要查找的字符,开始位置) 开始位置不写默认从0开始,找不到返回-1 ----查找字符
  2.charAt(字符位置) 给一个位置,返回该位置的字符 ----获取字符
  3.subStr(开始位置,截取个数) 返回截取的字符串结果 ----截取字符
  4.replace(要替换的字符,替换的新字符) ----替换字符
  5.join(连接符) 将数组通过连接符连接,返回字符串 ----连接字符
  6.split(连接符) 将字符根据连接符分割成多个值的数组,返回数组 ----分割字符
  7.toUpperCase() 将字符串转换为大写 ----转换成大写
  8.toLowerCase() 将字符串转换为小写 ----转换成小写
   
  数组对象:
  1.push() 后面添加元素
  2.pop() 后面删除元素
   
  3.unshift() 前面添加元素
  4.shift() 前面删除元素
   
  5.reverse() 翻转数组
  6.sort() 排序数组
   
  arr.sort(function(a,b){
  return a-b; //升序
  })
   
  arr.sort(function(a,b){
  return b-a; //降序
  });
   
  7.concat() 合并数组
  var arr3 = arr1.concat(arr2);
   
  8.splice 删除/修改/添加数组
  arr.splice(开始位置); //从开始位置删除到最后
  arr.splice(开始位置,删除个数); //从开始位置删除几个
   
  //新增内容
  arr.splice(开始位置,0,新增元素);
  arr.splice(1,0,'a','b'); //在索引1元素之前插入a和b
   
  //替换内容
  arr.splice(开始位置,删除个数,新增元素);
  arr.splice(1,1,'d'); //在索引为1开始删除一个元素,替换为
   
   
  9.indexOf() 查找数组
   
  查找数组中的元素位置
  arr.indexOf(元素); //返回元素的索引位置,如果没有返回-1
  arr.indexOf(元素,开始位置); //从开始位置继续向后找.
  arr.lastIndexOf(元素) //返回元素索引位置,如果没有返回-1,从后往前找
   
  10.tostring() 转换为字符串
   
  数组转换为字符串
  arr.toString(); 将数组中的每个元素用逗号链接成字符串
   
  11.join() 数组拼接分隔符
  arr.join(); //默认以逗号连接数组,拼接成字符串
  arr.join(分隔符); //以分隔符连接数组元素,拼接成字符串
   
   
  9.其他
  1.变量的命名规范
  1.字母,数字,下划线,$等组合,
  2.数字不能开头
  3.不能是关键字
  4.不能是中文
  5.建议使用驼峰命名
  2.输出打印
  alert()
  console.log()
  prompt();
   
  3.转义字符
  \n 换行
  \t tab制表符
   
   
  4.预解析
  变量声明和函数声明提前
   
  5.作用域和作用域链
  作用域:变量的作用范围
  作用域链: 人外有人,天外有天
   
  6.局部变量和全局变量
  全局变量有两种:
  1.在括号外面直接写的变量
  2.在函数内部,未使用var声明但直接赋值的变量
   
  局部变量:
  1.形参就是局部变量
  2.函数内部的变量就是局部变量
   
  注意:js中没有块级作用域
  {
  var a=1;
  }
   
   
  7.this和new的理解
  this的指向问题:
  1.函数在定义this的时候是不确定的,只有在调用的时候才可以确定
  2.一般函数直接执行,内部this指向全局window
  3.this的指向,谁调用指向谁
  4.构造函数中的this 对象的实例
  new在执行时会做四件事情
  1.new会在内存中创建一个新的空对象
  2.new会让this指向这个新的对象
  3.执行构造函数里面的代码,目的是给这个新对象加属性和方法
  4.new会返回这个新对象,所以构造函数里面不需要return
   
  8.运算符和优先级
  1.()
  2.++ -- !
  3.先* / % 后+ -
  4.< > <= >= == != === !==
  5.先&& 后||
  6.赋值运算符
  注意: 等于和不等于 == === != !==
  ++a 和 a++
  && 并且
  || 或者
  ! 取反
   

js基础复习点的更多相关文章

  1. JS基础 复习: Javascript的书写位置

    爱创课堂JS基础 复习: Javascript的书写位置复习 js书写位置:body标签的最底部.实际工作中使用书写在head标签内一对script标签里.alert()弹出框.console.log ...

  2. JS基础复习

      js基础语法     Netcape        js基础语法规范(ECMAScript1,2,3,3.1,5(IE9),6   ES    ES6=es2015) DOM BOM       ...

  3. js基础复习~Array对象

    Array对象 lenght 获取到数组的长度 concat() 方法用于合并两个或多个数组.此方法不会更改两大有数组,而是返回一个新的数组 let arr1 = ["a",&qu ...

  4. [JS复习] JS 基础知识

    项目结尾,空闲时间,又把<JS 基础知识> 这本书过了一遍,温故知新后,很多知其然不知其所以然的内容 豁然开朗. [1. 用于范围的标签] display  :inline or bloc ...

  5. day51 JS基础

    复习 1.字体图标 用i标签, 设置类名, 与第三方字体图标库进行图标匹配 <link rel="stylesheet" href="font-awesome-4. ...

  6. js 基础篇(点击事件轮播图的实现)

    轮播图在以后的应用中还是比较常见的,不需要多少行代码就能实现.但是在只掌握了js基础知识的情况下,怎么来用较少的而且逻辑又简单的方法来实现呢?下面来分析下几种不同的做法: 1.利用位移的方法来实现 首 ...

  7. 《CSS权威指南》基础复习+查漏补缺

    前几天被朋友问到几个CSS问题,讲道理么,接触CSS是从大一开始的,也算有3年半了,总是觉得自己对css算是熟悉的了.然而还是被几个问题弄的"一脸懵逼"... 然后又是刚入职新公司 ...

  8. js 基础

    js基础知识点总结 如何在一个网站或者一个页面,去书写你的js代码:1.js的分层(功能):jquery(tool) 组件(ui) 应用(app),mvc(backboneJs)2.js的规划():避 ...

  9. js基础练习二之简易日历

    今天学到了js基础教程3,昨天的课后练习还没来的及做,这个是类似简易日历的小案例,视频还没听完,今晚继续...... 先看效果图: 其实做过前面的Tab选项卡,这个就很好理解了,通过鼠标放在不同月份月 ...

随机推荐

  1. Python全国二级等级考试(2019)

    一.前言 2018年9月随着全国计算机等级考试科目中加入“二级Python”,也确立了Python在国内的地位,猪哥相信Python语言势必会像PS那般普及.不久的将来,谁会Python谁就能获得女神 ...

  2. Python-定时爬取指定城市天气(一)-发送给关心的微信好友

    一.背景 上班的日子总是3点一线,家里,公司和上班的路径,对于一个特别懒得我来说,经常遇到上班路上下雨了,而我却没带伞,多么痛的领悟.最近对python有一种狂热的学习热情,写了4年多的C++代码,对 ...

  3. asp.net core系列 57 IS4 使用混合流(OIDC+OAuth2.0)添加API访问

    一.概述 在上篇中,探讨了交互式用户身份验证,使用的是OIDC协议. 在之前篇中对API访问使用的是OAuth2.0协议.这篇把这两个部分放在一起,OpenID Connect和OAuth 2.0组合 ...

  4. SuperMap iObject入门开发系列七管线横断面分析

    本文是一位好友“托马斯”授权给我来发表的,介绍都是他的研究成果,在此,非常感谢. 管线横断面分析功能是管线系统常见的一个分析功能,地下管线横断面分析的原理,是根据需求,在管线区域画一条横截面线,使其与 ...

  5. mssql sqlserver 三种数据表数据去重方法分享

    摘要: 下文将分享三种不同的数据去重方法数据去重:需根据某一字段来界定,当此字段出现大于一行记录时,我们就界定为此行数据存在重复. 数据去重方法1: 当表中最在最大流水号时候,我们可以通过关联的方式为 ...

  6. Linux 桌面玩家指南:01. 玩转 Linux 系统的方法论

    特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...

  7. webpack打包The 'mode' option has not been set,错误提示

    学习到webpack打包这个工具的时候,总是报错.在这里记录一下...... 我是window系统 当使用npm安装好webpack后,你去查看如果出现一下问题. 出现以上问题,我的做法是 先将web ...

  8. 跟我一起学opencv 第三课之图像在opencv中的表示-Mat对象

    1.下面第一章图是一位美女图像,和其他数据一样图像在计算机中也是以二进制存储,下面第二张图 2.在摄像头眼里一幅图像就是一个矩阵或者说是二维数组,数组元素是像素值 3.opencv中以Mat对象表示图 ...

  9. Spring Cloud Eureka 注册中心集群搭建,Greenwich 最新版!

    Spring Cloud 的注册中心可以由 Eureka.Consul.Zookeeper.ETCD 等来实现,这里推荐使用 Spring Cloud Eureka 来实现注册中心,它基于 Netfl ...

  10. Java实现单链表

    真正的动态数据结构(引用和指针) 优点:真正的动态,不需要处理固定容量的问题. 缺点:丧失随机访问的能力. 链表就像寻宝,我们拿到藏宝图开始出发寻宝,每找到一个地方后,里面藏着下一步应该去哪里寻找.一 ...