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,可以基于这两个方法,验证当前字符串中是否包含某个字符串
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语句被禁止
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名