1.javascript语言主要分那几部分组成?
ECMScript(ES):是js语言的规范和标准:规范了语法、数据类型、流程控制语句等
DOM:document、object、model文档对象模型;体用 api(属性和方法)供js操作界面当中的html元素
BOM:browser object model 浏览器对象模型:提供api 供 js 操作浏览器
2.js数据类型中检测一个变量是不是有效数字?
可以用isNaN来检测是不是有效数字。
3.string常用的方法:
1.)charAt / charCodeAt / String.fromCharcode
作用:charAt根据索引获取指定位置的字符
chartCode不仅仅获取字符,获取的是字符对应的Unicode编码值(ASC II码值)[10进制]
String.fromCharCode返回的是编码对应的字符
参数:索引
返回值:字符或者对应的编码
2.)indexOf/lastIndexOf
基于这两个方法,可以获取字符在字符串中第一次/最后一次出现的位置索引,找到返回位置索引,
找不到返回-1,可以基于这两个方法,验证当前字符串中是否包含某个字符串
var str="hello world";
console.log(str.indexOf("l"),'字符第一次出现的位置');//2
console.log(str.lastIndexOf("l"),'字符最后一次出现的位置');//9
3.)slice查找
str.slice(n,m)从索引n查找索引m处,不包含m,把找到的字符当做新字符返回
str.slice(n)从索引n处到末尾
str.slice();浅克隆字符串
str.slice(-3,-1)从倒数3个开始查找到倒数第1个
4.)substring:查找,与slice一样,区别是substring不支持负数
5.)substr:截取字符串
str.substr(n,m)从索引n开始截取m个字符
str.substr(n);从索引n开始截取到末尾
str.substr(-2,3)从倒数-2的索引截取3个
6.)toUpperCase /toLowerCase
实现字符大小写转换
toUpperCase:小写转大写
toLowerCase:大写转小写
7.)split:和数组中的join相对应,join是把字符串按照指定的分隔符变为字符串,
split是把字符串按照指定分隔符,拆分成数组中的每一项
var str="1+2+3+4";
console.log(str.split('+'));//['1','2','3','4'];
8.)replace替换
作用:替换字符串中的原因字符
返回值:替换后的字符串
只能替换一个:所以可以配合正则使用
一般配合正则使用的
null:空对象指针,一般是意料之中的没有,可以手动赋值,
undefined:未定义,只有js中有,只声明未定义。
严格模式和非严格模式的区别?
1.严格模式不能使用未声明的变量
2.不允许删除变量或对象包括函数
3.不允许变量重名,包括不能给对象的属性补能重名
4.eval和arguments变为关键字,不能作为变量、函数名
5.函数中修改arguments对象不会影响到实际的函数参数:arguments对象与函数参数不具有联动关系
6.arguments中的caller,callee被禁用
7.函数内禁止this关键字指向全局对象,严格模式下无法再意外创建全局变量
8.call、apply、bind、的第一个参数为null/undefined时,this为null/undefined
9.禁止八进制字面量
10.width语句被禁止
splice() 方法向/从数组添加/删除项目,并返回删除的项目
//splice():如果仅删除一个元素,则返回一个元素的数组。 如果未删除任何元素,则返回空数组
var fruits = ["Banana", "Orange", "Apple", "Mango"];
// console.log(fruits.splice(2,2));//第一个参数代表从哪一个开始,第二个参数代表删除几个元素
//这里的2是从第三个开始的,选择2个元素删除
//返回结果 是删除后的数组 (2) ['Apple', 'Mango']
fruits.splice(2,1,"Lemon","Kiwi");//第一个参数代表从哪一个开始,第二个参数代表删除几个元素 第三个参数是可以添加多项...
document.getElementById("demo").innerHTML = fruits;
输出结果:
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>测试js++</title>
</head>
<body>
<p id="demo"></p>
<p id="demo1-item"></p>
<script src="../js/index.js"></script>
</body>
</html>
js
//删除数组 页面打印删除后的新数组
var arr1=["zhangsan","lisi","wangwu","zhaoliu"];
arr1.splice(2,1);
document.getElementById('demo1-item').innerHTML=arr1;
输出结果:
var str="abcdef";
console.log(str.slice(0,6));//abcdef
console.log(str.substr(-2,2));//ef
var obj={name:'lilei'};
var name='zhanghong';
console.log(obj.name);//lilei
console.log(obj['name']);//lilei
console.log(obj[name]);//undefined//obj里面没有zhanghong这个name名