JavaScript-- 基础知识面试题
1.JavaScript语言特点
1.弱类型,数据类型由数据的值决定
2.解释性脚本语言--解释器是JS引擎 是浏览器的一部分
3.运行在客户端浏览器上
4.有事件驱动机制(按下鼠标,移动窗口等)
5.与操作系统无关,跨平台语言
2.盒子模型
标准盒子模型:左右margin+左右padding+左右border+width
IE盒子模型:左右margin+width(包括padding和border)
3.CSS Sprite 是一种网页图片应用处理技术,将一个页面需要用到的图片整合成一张或少张图片 以此来减少网页的HTTP请求,提高性能,这是它最大的优点
使用方法 设置其为background-img:url(),设置其定位:background-position:x,y
它的优点:减少网页的http请求 提升性能
减少了图片的字节,多张图片合成一张图片的字节小于多张图片的总和
减少了命名困扰,只需对一张集合的图片命名,提高制作效率
更换风格方便,只需在一张或少张图片上修改图片的颜色或样式
它的缺点:合成麻烦
4.link和@import的区别
1.link属于HTML标签,而import是css提供的
2.页面加载时,link会被同事加载,而@import引用的css样式会后加载
3.link无兼容问题,而import只在IE5以上才能被识别到
4.link的权重高于import
5.CSS中可以继承的属性有:font-size、color
5.在原型链上对数组去重
var a = 10;
function a(){
}
console.log(typeof a);
Array.prototype.unique1 = function (arr) {
var n = []; //一个新的临时数组
for (var i = 0; i < this.length; i++) //遍历当前数组
{
//如果当前数组的第i已经保存进了临时数组,那么跳过,
//否则把当前项push到临时数组里面
if (n.indexOf(this[i]) == -1) n.push(this[i]);
}
return n;
}
var arr = [2,5,8,7,4,9,5,6,1,2,5];
console.log(arr.unique1());
6.关于原型
function A(x){
this.x= x;
}
A.prototype.x = 1;
function B(x){
this.x= x;
}
B.prototype = new A();
var a = new A(2);
var b = new B();
console.log(a.x,b.x);//2 undefined
B的原型由A的构造函数创建 在A构造函数中 x这个属性声明且复制为undefined,当执行b.x 时先在对象中寻找x属性值 若不存在则去原型中寻找
7.关于原型
var A = {n:4399};
var B= function(){this.n = 9999};
var C = function(){var n = 8888};
// 将B和C的原型都设置为A对象
B.prototype =A;
C.prototype = A;
var b = new B();
var c = new C();
// 对象A的属性n++ n=4400
A.n++;
// 这是输出b.n 会先去自己的对象中查找属性 找到n=9999
console.log(b.n);
console.log(c.n);//对象没有属性 去原型中查找 n=4400
8.用for in 遍历对象属性时不仅遍历对象本身的属性和方法,同时会遍历原型链上的属性和方法
Object.prototype.bar = 1;
var foo = {moo : 2};
for(var i in foo){
console.log(i);
}
9.函数执行后变量无返回值
var x = 1, y = z = 0;
function add(n) {
n = n+1;
}
y = add(x);//执行add 但函数并未return返回值,此时变量会被赋值为undefined
function add(n) {
n = n + 3;
}
z = add(x);//与y同理
10.下列代码的输出结果
alert(typeof(null)); //object
alert(typeof(undefined)); //undefined
alert(typeof(NaN)); //number
alert(NaN==undefined); //false NaN与任何数据类型比较结果都为false
alert(NaN==NaN); //false
var str="123abc";
alert(typeof(str++)); //number 会对str进行隐士转换为Number 但是转换失败 所以类型为number 值为NaN
alert(str);//NaN
JavaScript-- 基础知识面试题的更多相关文章
- Javascript基础知识面试题
[]==![] 解题思路: step1, []==!Boolean([]);step2, []==!true;step3, []==false;step4, [].valueOf()= ...
- java基础知识面试题(41-95)
41.日期和时间:- 如何取得年月日.小时分钟秒?- 如何取得从1970年1月1日0时0分0秒到现在的毫秒数?- 如何取得某月的最后一天?- 如何格式化日期?答:问题1:创建java.util.Cal ...
- java基础知识面试题(1-40)
1.面向对象的特征有哪些方面?答:面向对象的特征主要有以下几个方面:- 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面.抽象只关注对象有哪些属性和行为,并不关注这些 ...
- Java 基础知识面试题(2020 最新版)
Java面试总结汇总,整理了包括Java基础知识,集合容器,并发编程,JVM,常用开源框架Spring,MyBatis,数据库,中间件等,包含了作为一个Java工程师在面试中需要用到或者可能用到的绝大 ...
- 50道JavaScript基础面试题(附答案)
https://segmentfault.com/a/1190000015288700 1 介绍JavaScript的基本数据类型 Number.String .Boolean .Null.Undef ...
- (转)50道JavaScript基础面试题(附答案)
https://segmentfault.com/a/1190000015288700 1 介绍JavaScript的基本数据类型 Number.String .Boolean .Null.Undef ...
- Java基础知识面试题及答案-整理
1.String类可以被继承吗? 不能.String类在声明中使用final关键字修饰符.使用final关键字修饰的类无法被继承. Java语言的开发者为什么要将String类定义为final类呢? ...
- Java 基础知识面试题
equals与==有什么区别? (1)==是判断两个变量或实例是不是指向同一个内存空间 (2)equals是判断两个变量或实例所指向的内存空间的值是不是相同 Object有哪些公用方法? (1)equ ...
- Java基础知识面试题(最详细版)
刚刚经历过秋招,看了大量的面经,顺便将常见的Java常考知识点总结了一下,并根据被问到的频率大致做了一个标注.一颗星表示知识点需要了解,被问到的频率不高,面试时起码能说个差不多.两颗星表示被问到的频率 ...
- Java基础知识面试题详解(2019年)
文章目录 1. 面向对象和面向过程的区别 2. Java 语言有哪些特点? 3. 关于 JVM JDK 和 JRE 最详细通俗的解答 JVM JDK 和 JRE 4. Oracle JDK 和 Ope ...
随机推荐
- Centos 7 下 Corosync + Pacemaker + DRBD + psc + crmsh 实现 mysql 服务高可用
一.介绍 高可用,大家可能会想到比较简单的Keepalived,或者更早一点的 heartbeat,也可能会用到 Corosync+Pacemaker,那么他们之间有什么区别. Heartbeat到了 ...
- Unix/Linux系统下获得时间戳函数
在Unix/Linux系统下,使用gettimeofday函数来获得当前系统的时间戳,精度可达到微秒(microsecond,即μs)级别. 通过结构体timeval来存放当前时间戳的信息: #ifn ...
- 字典学习(Dictionary Learning)
0 - 背景 0.0 - 为什么需要字典学习? 这里引用这个博客的一段话,我觉得可以很好的解释这个问题. 回答这个问题实际上就是要回答“稀疏字典学习 ”中的字典是怎么来的.做一个比喻,句子是人类社会最 ...
- zblog上传安装主题插件不成功的原因和解决办法
最近有不少zblog用户反映在后台上传安装主题或者插件的时候出现了问题.本文就来尝试说明下这类问题的原因和解决办法. 首先来说说zblog主题或者插件的安装方法,一共有三种方式: 第一种是直接在网站后 ...
- KDChart example
/******************************************************************************** ** Form generated ...
- spark "main" java.lang.ArrayIndexOutOfBoundsException: 10582
升级 你的 paranamer 到2.8 ,这是由于你的jdk版本1.8导致 <!-- https://mvnrepository.com/artifact/com.thoughtworks.p ...
- web手工项目01-系统组织框架-测试流程-需求评审-测试计划与方案
回顾 SVN(定义,作用,使用操作) 软件缺陷(定义,表现形式,原因和根源,基本内容,跟踪流程) JIRA(基本介绍,使用者,工作流,问题,使用) 学习目标 掌握WAMP的环境搭建 掌握熟悉项目的步骤 ...
- OpenStack社区中的GO语言之争
1 背景介绍 Swift之前几乎所有的代码都是用Python实现的,但是性能一直不理想, 社区为了解决性能问题,尝试过很多方法,后来发现用Golang语言进行一部分代码重写, 性能得到了一定的提升,社 ...
- Linux下-bash: Permission denied 或者 sudo: command not found 错误
有时候执行一个脚本或者运行一个可执行文件时,如执行脚本./foo.sh,会报错-bash: ./foo.sh: Permission denied,你会再试sudo ./foo.sh,发现继续报错su ...
- 使用一般处理程序生成 JSON
在 .NET 3.5 之后,定义在命名空间 System.Runtime.Serialization.Json 中的 DataContractJsonSerializer 可以帮助我们直接将一个对象格 ...