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
    封闭空间(自执行函数)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容

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