JS基础1

作者: pp_5793 | 来源:发表于2018-10-21 15:57 被阅读0次

主要参考网道文档:https://wangdoc.com/javascript/types/string.html

字符串

字符串就是用""和''连接起来的空的或者字符的串
比如 'abx'"abddf"
单引号和双引号可以自由嵌套。
但是在单(双)引号中套用单(双)引号时,要加上\来表明转义:
'Did he say\'hello\ ?'
注意字符串不能在多行表示

'a
b'//error
'ab'//true

如果想分成多行表示可以在后面加\来表示,注意反斜杠后面必须是转行,不能出现空格。
连接符"+"可以连接多个单个字符串
字符串可以看成是字符串数组
但是不能改变其中的值,用delete.push等操作会无效

base64转码

函数表示:btoa():任意值转为base64编码
atob():转base64码为任意值

var string ='Hello World!';
btoa(string)
atob('SGVsbG8gV29ybGQH')

注意这两个方法不适非ASCII码的使用,如果想使用的话要如下所示的操作:

function b64Encoder(str){
    return btoa(encodeURIComonent(str));
}
function b64Decode(str){
    return decodeURIComponent(atob(str));
}
b64Encoder('你好')
b64Decode('JUUOJUJEwJUU1JUE1JUJE')

对象

对象就是一组键值对(key-value)的集合,是一种无序的复合数据集合。
eg:

var obj={
foo:'hello',
bar:'world'
};

上面的代码及定义了一个名为obj的对象,它用大括号扩括起来,该对象里面有 两个键值对(成员)分别是foo:'hello'和bar:'world',其中foo和bar是键名(成员名),hello和world是键值(成员的值),他们之间用“:”相连,键值对用“,”相连。
键名
所有对象的键名都是字符串(Symbol也可以),所以也可以加上引号表示,如果键名是数值,也会被自动转换成字符串的!!!
但是如果键名不是标识符的形式,就要给它加上引号:

var obj={
'1p'='fffan',
'h  w'='hcjkd',
'a+c'='gdjshjd0'
}

对象中的每个键名又叫做属性(property),它的键值可以是任何类型。如果一个属性的值为函数,通常把这个属性就叫做“方法”,它可以像函数那样调用。

var obj={
    p:function(x){
        return 2*x;
    }
};
console.log(obj.p(1));

上面的代码中,对象obj的属性就是一个函数,它可以直接调用。
如果属性的值还是一个对象,就是链式引用。

var o1={};
var o2={
    bar :'hello'
};
o1.pool=o2;
console.log(o1.pool.bar);//输出hello

o1.pool.bar就相当于是o2.bar
注意一下以下代码:

console.log(eval('{foo:123}'));
console.log(eval('({foo:123})'));
//输出:123  { foo: 123 }

解释以上代码,第一个没有加圆括号表示它是一个代码块,第二个加了圆括号,表示它是一个对象。

属性的读取

读取对象的属性有两个方法,分别是用点运算符,和 [ ]运算符。

var obj={
    p:'hello world'
};
console.log(obj.p);//hello world
console.log(obj['p']);//hello world

注意使用[ ]引用时,必须要加' '(不过数字可以不用,因为数字会被处理成字符串),否则会被当成变量处理的。用点不易出错,用数值表示 的属性不能直接用点号引用,因为会被当成是小数点。
用点和方括号也可以实现赋值:

var obj={};
obj.foo='hello';
obj['bar']='world';

属性的操作

(1)属性的查看:

var obj={'pool':'hello',
               'bar':'world'};
console.log(Object.keys(obj));
//输出['pool','bar']

我们可以用Object.keys()方法来查看我们想看的对象的属性。*注意这里是大写的O。
(2)属性的删除
delete命令用于属性的删除,删除后会返回true。

ar obj={'pool':'hello',
               'bar':'world'};
delete obj.pool//返回true
console.log(obj);
//输出{bar:'world'}

从以上代码我们可以看出属性pool已经不在,已经用detele命令删除。
注意delete命令只能删除对象本身的属性而不能删除继承的属性。

var  obj={};
delete obj.toString
console.log(obj.toString);
//输出为[function:toString]

以上代码证明这个继承的属性toString没有被删除,虽然delete obj.toString会返回一个true.
(3)判断属性是否存在:用in运算符:

var  obj={ p:1};
console.log('p'in obj);
console.log('toString'in obj);
// true
//true

在以上代码中,toString虽然没在obj对象中,但是它是obj的一个继承属性,所以显示为true。
我们可以看出in运算符不能分辨出继承属性和原生属性,这时我们可以用hasOwnProperty()方法来判断一下:

var  obj={ p:1};
if('toString'in obj){
  console.log(obj.hasOwnProperty('toString'));
}//输出false

(4)遍历属性:用for... in..

var person={name:'rose',height:'174',face:'beauty'};
for(var key in person){
    if(person.hasOwnProperty(key))
        console.log(key);
}
//输出name height face

以上代码,用了for..in来遍历对象person,然后用了hasOwnProperty()方法来判断是否为原生属性,最后输出这些原生属性。

``

相关文章

  • 前端JavaScript面试技巧

    1-1 课程概述 要做什么?——讲解前端 JS 基础面试题 哪些部分?——JS 基础,JS-WEB-API,JS ...

  • 2018-12-20

    1.01.尚硅谷_JS基础_JS简介(1) 10.10.尚硅谷_JS基础_Null和Undefined(10) 1...

  • 2019-07-27 前端面试题

    1.js的基础类型 js的基础类型包括 Undefined , Null , String ,Number ,...

  • 网络编程(十九) JavaScript(9)

    一、 JS的组成 1.1 JS基础阶段以及Web APIs阶段 【1】JS基础阶段 我们学习的生死ECMAScri...

  • 2018-08-17day-25

    总结 : js基础 js基础语法 1.js是javaScrip的缩写,是一门脚本语言。专门用来负责网...

  • js基础1

    1.认识js 1)js是JavaScript的缩写,是一门脚本语言,专门用来负责网页上的行为(可以直接写到网页上)...

  • JS基础1

    主要参考网道文档:https://wangdoc.com/javascript/types/string.html...

  • js基础1

    1、常见元素获取

  • js基础(1)

    1、浏览器内核-2、css与js引入方式 1、浏览器内核 我们把浏览器中识别代码绘制页面的东西称之为浏览器的内核或...

  • JS基础1

    转换为数值 JS提供三个函数进行数值的转换。(1)Number() 不常用它可以用于任何数据类型 (2)pars...

网友评论

      本文标题:JS基础1

      本文链接:https://www.haomeiwen.com/subject/knlmzftx.html