-
以下 javascript 代码,在浏览器中运行的结果是 (string)
var a = 4399 < 0 || typeof (4399 + ''); console.log(a); //string
4399<0值为false
(js中字符串的前面或者后面有加号)拼接 4399+ ‘’ => 4399 隐式转换成字符串
第一个值为true,则结果为true,第一个值为false,则返回第二个值 -
获取 input 节点的正确方法是( 全错 )
<form class="file" name="upload"> <input id="file" name="file" /> </form> document.querySelectorAll('file')[0]-------document.querySelectorAll('#file')[0] document.getElementById('file')[0]------document.getElementById('file') document.getElementByTagName('file')[0]------document.getElementsByTagName('input')[0] document.getElementsByClassName(‘file')[0]------input没有class属性
-
console.log(([])?true:false); //true console.log(([]==false?true:false)); //true console.log(({}==false)?true:false) //false
- 三目运算符(只能执行一条语句,不能出现分号):
格式:条件 ? 语句1 : 语句2; 如果条件为真,则执行语句1,否则执行语句2;
// 1判断一个年份是闰年还是平年? var year = 2015; console.log(year % 4 == 0 && year % 100 == 0 || year % 400 == 0 ? '闰年' : '平年');//平年 // 2判断一个数是奇数还是偶数? var inum = 5; console.log(inum % 2 == 0 ? '奇数' : '偶数');//偶数 // 3判断一个数是正数还是负数? var inum = -5; console.log(inum == 0 ? '既不是正数也不是负数' : inum > 0 ? '正数' : '负数');//负数
- 数据类型的转换与比较
console.log(Boolean([]));//true console.log(Number([]));//0 console.log(Number({}));// NaN console.log(Number(false));//0
- 三目运算符(只能执行一条语句,不能出现分号):
-
假设 output 是一个函数,输出一行文本。下面的语句输出结果是什么?
output(typeof (function() {output(“Hello World!”)})()); undefined Hello World! Object string function Hello World! undefined √
先立即执行匿名函数,输出Hello World!,函数执行后无返回值,则输出undefined
-
null、undefined、0会返回false
-
自己定义 或 运算过程中出现错误,原本应该是数字的地方出现一些不能转换为数字的值会返回NAN
比如: 10+“s” ,Number(“s”)等 -
类型转换:
用number方法将字符串转为number类型时,只能转换纯数字字符串和空字符串,其它的都是NAN。parseInt转换为整数、parseFloat可保留小数,都可转为number类型,但是转换时需要对数据进行数据解析,从前往后,若存在能识别得数字则解析,遇不到就结束转换返回NAN。
isNaN 是不是 不是数字,返回boolean值,是返回true,不是false。
隐式:在数据进行算术运算时,出现+运算,+ - * / 等操作都转化为number类型。
加法运算在遇到字符串时,‘+’会变成连接符,将字符串前后拼接起来,转化为string值。- 强制类型转换 :
Number(“10”); 强转为Number
parseInt(“10.5”);强转为number,取整
parseFloat(“10.5”);强转为number,保留小数 String(10); 强转为字符串
10.toString(); 强转为字符串 - 隐式类型转换:
“10”+20 ; 1020 +号遇到字符串变成连接符,20隐式转换为字符串
1+true; 2 true隐式转换为1 10==“10” “10”隐式转换为10
- 强制类型转换 :
-
变量提升
浏览器解析js代码至少会经过两个过程,预解析、逐步执行。
预解析:找var,function,如果找到var,会在内存中存储变量(没赋值),找到function则会存储整个函数
逐步执行console.log(a); //undefined 不会报错,找到var存储了变量a,但是没有赋值默认为undefined var a = 10; //给内存中的a赋值10 console.log(a); //10 console.log(sum); //找到函数会将整个函数都存储在内存中 sum(); //整个函数,存储了整个函数,因此可以在前面调用 function sum() { console.log(10+20); //30 }
-
js有哪些对象?
原生对象:Object,Function ,Array, String, Date, Boolean, Number,RegExp,Error
内置对象:Global(全局 window, documet),Math
宿主对象:DOM BOM
全局对象:window -
DOM怎样添加、移除、移动、复制、创建和查找节点
获取子节点:父节点.children / 父节点.childNodes
获取父节点:子节点.parentNode / 子节点.offsetParent
创建:document.createElement(‘标签名’); / document.createTextNode(‘文本内容’);
添加:父节点.appendChild(子节点); / 父节点.insertBefore(new,ref);
复制:被复制的节点.cloneNode(true);
删除:节点.remove(); / 父节点.removeChild(子节点)
替换:父节点.replaceChild(new,ref);
基础面试题整理2
最新推荐文章于 2023-04-18 17:48:57 发布