javascript基础一

basic

在这里,不想直接照抄某个网站的文章或者观点,只是标注一些注意点

对大小写敏感

Comments

// /* */
tips: /* 但是, 你不能, /* 嵌套注释 */ 语法错误 */

Declarations

var
let 声明块范围局部变量(block scope local variable),可选择将其初始化为一个值。
const 声明一个只读(read-only)的有名字的常量。

声明变量(Declaring variables)

  • 使用关键词 var。
  • 直接赋值。
  • 使用关键词let。
    tips:时用来声明语句块代码段的局部变量(block scope local variable)。

对变量求值(Evaluating variables)

用var 和let声明为赋初值的变量,只会被设定为undefined.

tips - undefined值在布尔类型环境中会被当作false undefiend --> false

  • 数值类型环境中undefined值会被转换为NaN undefiend --> NaN(Not a Number)
  • 空值 null 在数值类型环境中会被当作0来对待 null --> 0
var a = undefined;
var a ;

变量作用域

if(true){
  var  x= 5;
}
console.log(x);//5

if (true) {
  let y = 5;
}
console.log(y); // ReferenceError: y is not defined

tips:ECMAScript 6 之前的JavaScript没有 语句块 作用域;相反,语句块中声明的变量将成为语句块所在代码段的局部变量。不是语句块作用域,声明了 x 的那个函数(或全局范围)。

声明提升

x = undefined;
console.log(x === undefined); 
var x =3;
 
var myvar = "my value";
(function(){
  console.log(myvar);
  var myvar = "local value";
})(); 


var myvar1 = "my value";
(function(){
  var myvar1 ;
  console.log(myvar1);
  var myvar1 = "local value";
})(); 

tips:变量声明提升了,但是其值赋予undefined.

全局变量

其对象是window

window.variable
parent.phoneNumber

Constants..常量

const prefix="404";

常量必须被初始化为某个值。

tips:不能用于变量或函数名相同的名字来命名常量.

数据结构和类型

识别7种值

  • 6种是 原型的数据类型

Boolean null undefined ,Number , String, Symbol

typeof关键字,查看其类型.
typeof Boolean; //function
typeof null; // object
typeof NULL; // undefiend
typeof undefiend; //undefiend
typeof Number; //function
typeof String;//function
typeof Symbol;//function
typeof Object;//function

通过typeof可以看出,Boolean、Number、String、Symbol的类型是function,null是一个关键字,用于表示空值的对象。NULL则是表示一个变量,值为undefined。Symbol是在 ECMAScript 6 中新添加的类型,一种数据类型,它的实例是唯一且不可改变的。

  • 以及Object对象

自动转换

tips:"37" - 7 ;//30,自动转换成数字
"37"+7;//377,自动转换成字符串

converting strings to numbers

parseInt()和parseFloat();

tips:将数字字符串转换成数字的方法parseInt(),parseFloat(),

还有单目加发运算符

'1.1'+'1.1';//1.1.1.1
(+'1.1')+(+'1.1');//2.2

字面值(Literals)

字面值是由语法表达式定义的常量;或,通过由一定字辞组成的语词表达式定义的常量

在JavaScript中,你可以使用各种字面值。这些字面值是脚本中按字面意思给出的固定的值,而不是变量。(译注:字面值是常量,其值是固定的,而且在程序脚本运行中不可更改 ).
字面值的类型如下:

  • 数组字面值(Array literals)
  • 布尔字面值(Boolean literals)
  • 浮点数字面值(Floating-point literals)
  • 整数(Intergers)
  • 对象字面值(Object literals)
  • RegExp literals
  • 字符串字面值(String literals)

数组字面值(Array literals)

数组字面值是一个封闭在方括号对([])中的包含有零个或多个表达式的列表,其中每个表达式代表数组的一个元素。


tips:数组字面值中的多余逗号
若你在同一行中连写两个逗号(,),数组中就会产生一个没被指定的元素,其初始值是undefined(除了最后逗号去除的情况)。

var fish = ["Lion",  , "Angel"];
var fish = ["Lion", undefined , "Angel"];//等同

var fish = [ ,  ,  'Alison',  'Gavin',   ]
var fish = [ undefiend, undefiend, 'Alison', 'Gavin'  ]//最后的逗号会去掉
而且他俩的长度一样,都是.length = 4
var coffees = ['a', , 'b',  ,  , ];
var coffees = ['a' , undefined, 'b' , undefined, undefiend ];
console.log(coffees.length);//5

浮点数字面值(Floating-point literals)

语法:[(+|-)][digits][.digits][(E|e)[(+|-)]digits]


对象字面值(Object literals)

对象字面值是封闭在花括号对({})中的一个对象的零个或多个"属性名-值"对的(元素)列表。

var sales = "tomacat";
function carType(name){
  return (name === 'hone')? name : "sorry";
};

var car ={myCar:  "staturn", getCar: carType('hone'),  special: sales};
console.log(car.myCar);//staturn
console.log(car.getCar);//hone
console.log(car.special); // tomacat 

tips:

  • 可以使用数字或字符串字面值作为属性名,或者在另一个字面内值嵌套一个字面值。
var carr = {mycara: {a: 'Saab', b: 'Jeep'}, 7: 'Mazda'};
  • 对象属性名可以是任意字符串,包括空串。如果对象属性名字不是合法的javascript标识符,它必须用""包裹。属性的名字不合法,那么便不能用.访问属性值,而是通过类数组标记("[]")访问和赋值。
    这里说的是,不是合法字符串,都需要通过类数组标记来访问,不能通过' . 属性'来访问。
var unus = {
  "": "an empty String",
  "!": "Bang"
}
//console.log(unus."");//SyntaxError: missing name after . operator
console.log(unus[""]);
//console.log(unus.!);//SyntaxError: missing name after . operator
console.log(unus["!"]);

var foo ={a : 'alpha', 2: 'two'};
console.log(foo.a); //alpha
console.log(foo[2]);//two

console.log(foo.a);
//console.log(foo.2);//SyntaxError: missing ) after argument list
console.log(foo[a]);//undefined,并不是Error: a is not defined
console.log(foo[2]);

console.log(foo["a"]);
console.log(foo["2"]);

RegExp字面值

一个正则表达式是字符被斜线围成的表达式。var foo =/asd+as/

字符串字面值(String literals)

字符串字面值可以包含有零个或多个字符,由双引号(")对或单引号(‘)对包围。

tips:字符串字面值后自动转换为一个临时字符串对象,就可以调用对象的方法,然后废弃掉那个临时的字符串变量。

参考文献:https://developer.mozilla.org/zh-CN/

PS: 若你觉得可以、还行、过得去、甚至不太差的话,可以“关注”一下,就此谢过!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,968评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,601评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,220评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,416评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,425评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,144评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,432评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,088评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,586评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,028评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,137评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,783评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,343评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,333评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,559评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,595评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,901评论 2 345

推荐阅读更多精彩内容

  • 1、JavaScript 定义了几种数据类型? 哪些是原始类型?哪些是复杂类型?原始类型和复杂类型的区别是什么? ...
    字母31阅读 121评论 0 0
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy阅读 9,506评论 1 51
  • 变量 变量名必须以 字母、$和 _ 符号开头,并且不能包含空格,此外变量名支持大小写 javaScript 是一种...
    TianBai阅读 515评论 0 1
  • 基本内置类型 算术类型字符整型布尔值浮点数 空类型(void) 算术类型 带符号类型和无符号类型int、short...
    2625K阅读 3,127评论 0 1
  • 1993 故事还得从2030讲起,我认识他那么久,基本没有听他提起过1993。2030说他自己是个新时代的浪子,游...
    钱琪阅读 473评论 0 2