js基础常见问题总结(一)~

1. 什么是web标准

简单的说,就是HTML、CSS、JavaScript这三者分离。WEB标准不是某一个标准,而是一系列标准的集合。网页主要由三部分组成:结构(Structure)、表现(Presentation)和行为(Behavior)。对应的标准也分三方面:结构化标准语言主要包括XHTML和XML,表现标准语言主要包括CSS,行为标准主要包括对象模型(如 W3C DOM)、ECMAScript等。

2. 2.css优先级

! important > 行间 > ID > class > 通配符

3. 网页的解析顺序

页面加载顺序:解析HTML结构、加载外部脚本和样式表文件、解析并执行脚本代码、构造HTML DOM模型、加载图片等外部文件、页面加载完毕。

4. js中全局变量属于window,怎样解决他不属于window

使用箭头函数、改变指向后全局变量就不在属于window了

5.js中的分号要在什么时候加

事件函数,所有的大括号后面都要加分号
  等号右边必须加分号

6. return的一些特性

函数没有返回值会返回undefined,有return没有值,也返回undefined;
  会阻止后面代码的执行
  作用:
   阻止后面代码的执行
   封装函数

7. 面向对象的三大特性

三大特性是:封装,继承,多态

8. 定时器

setTimeout clearTiomeout 可以模拟循环
  setInterval clearInterval

9.阻止默认事件

  return false;   //事件绑定
  event.preventDefault();  //事件监听
  event.returnValue = false;    //IE下使用

10. js中批量修改样式

 //第一种
  setStyle(oDiv, {width: '200px', background: 'red'}); 

 //第二种 使用cssText
  oDiv.style.cssText="width: 200px; height:300px; background:yellow;";   

 //使用第三种 with (不推荐使用)
    with(oDiv.style) {
       width='300px';
       height='500px';
       background='yellow';
    }

11. 获取非行间样式

    window.onload = function(){
        var oDiv1 = document.getElementById("oDiv1");
        var oDiv2 = document.getElementById("oDiv2");
        //获取行内样式
        alert(oDiv2.style.background)

        //获取非行内样式 currentStyle是IE中m的属性,getComputedStyel是其他浏览器的方法
            //在非行间样式中,style属性只能去赋值,在行间样式中才能获取样式
        function getStyle(obj,attr){
            if(obj.currentStyle){
                return obj.currentStyle[attr]
            }else{
                return window.getComputedStyle(obj,fa6lse)[attr];
            }
        }
        alert(getStyle(oDiv1,"background"))
    }

12. 循环中break和continue

break是结束整个循环体,continue是结束单次使用
  break也可以在while中使用

13. js语句中的条件语句和循环语句

条件语句:

//第一种  【if语句】对于区间的一个判断,只有一个语句时可以不写大括号
  if( 条件 ){ 
    //条件为true时执行的代码 
  }else{
    //条件为false时执行的代码
  }

//第二种  【switch语句】离散型的判断
  switch( 条件 ){
      case 条件1:
      //条件为true时执行的代码
      break;
      case 条件2:
      //条件为true时执行的代码
      break;
      case 条件3:
      //条件为true时执行的代码
      break;
      default:
      //默认要执行的代码
  }

循环语句:

//第一种  【while语句】
  while( 循环的条件 ){
     //条件为真时重复循环,否则退出循环
  }

//第二种  【do while语句】不管条件是否满足,都会循环一次
  do{
    //循环体
  }while(判断逻辑)

//第三种  【for语句】
  for( 初始化; 循环条件; 变量的更新 ){
    //代码
  }

//第四种  【for in语句】
  for(variable in object){
      statement
  }

/***以下两种在IE6-8下都不兼容***/

//第五种  【forEach()】
  var ary = [12,23,24,42,1];
  var res = ary.forEach(function (item,index,input) {
       input[index] = item*10;
  })
  console.log(res);//-->undefined;
  console.log(ary);//-->会对原来的数组产生改变;


//第六种  【map()】
var ary = [12,23,24,42,1];
var res = ary.map(function (item,index,input) {
     return item*10;
})
console.log(res);//-->[120,230,240,420,10];
console.log(ary);//-->[12,23,24,42,1];

14. 三目运算符

变量 = 条件?语句:语句

15. js中的真假值

真:true,非空字符串,非0数字,非空对象
  假:false,0,空字符串,空对象,null,undefined,NaN

16. 基本数据类型

symbol   (ES6引入的新的数据类型,表示独一无二的值)
  undefined  未定义
  boolean   布尔
  string    字符串
  null     空
  number   数字
  object    对象

检测数据类型:typeOf() instanceOf()

17.几种出现undefined的情况

- 未声明的变量
  - 已声明未定义的变量
  - 传参没有值
  - 访问不存在的属性

18.隐式转换

** "+"运算符 **

  var a = 1 + '2';
  console.log(a) //12

当运算符“ +” 两边一个是数字类型, 一个是字符串类型时, js引擎规定进行字符串连接运算而非算术加运算。 利用运算符“ +” 这个特性,可以很方便的将Number转换成String

** "-"运算符 **

       var a = 11, b = '5';
       var c = a - b;
       alert(typeof c); //--> number

-”运算符会把字符串b隐式的转换成数字5再进行算术减法运算。

19. 显式转换

转换为数值类型:
  Number(mix)
  parseInt(string,radix)  转成整数
  parseFloat(string)   转成浮点数
  这三个函数可以把非数值转换为数值。第一个函数,即转型函数Number()可以用于任何数据类型,而另外两个函数则专门用于把字符串转换成数值。

转换为字符串类型:
  toString(radix)
  String(mix)

转换为布尔类型:
  Boolean(mix)

20. 解决this在某些情况不能使用的问题

1.使用箭头函数
  2.定时器外层写一个变量

21. 解决i在某些情况不能使用的问题

1. 循环中加事件,事件不能用i,
    自定义属性(IE不支持,自定义属性不能写在行间)
  2. 循环中加定时器,定时器不能用i
    封闭空间(自执行函数)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 标签: 我的笔记 ---学习资料:http://javascript.ruanyifeng.com/ 1. 导论 ...
    暗夜的怒吼阅读 846评论 0 1
  • 什么是 JavaScript 语言? JavaScript 是一种轻量级的脚本语言。所谓“脚本语言”(script...
    oWSQo阅读 1,826评论 0 1
  • FreeCodeCamp - Basic JavaScript 写在前面: 我曾经在进谷前刷过这一套题,不过当时只...
    付林恒阅读 16,531评论 5 28
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,270评论 0 4
  • 今天不知为啥,没有什么特别开心的事情,却觉得心里很舒畅。平凡的一天,踏实的感觉。 昨天放学回家,豆说约了同学今天要...
    绽蕊向阳阅读 152评论 1 1