JavaScript基础语法

 

JavaScript基础语法。

一、标识符

硬性要求

1)         可以是由数字、字母、下划线和美元符号组成,不允许包含其他特殊符号。

2)         不能以数字开头。

3)         禁止使用JavaScript中的关键词和保留字来进行命名。

4)         严格区分大小写。

二、命名的方法

  1. 匈牙利命名法

其特点是标识符的名字以一个或者多个小写的字母开头,表示该变量的数据类型。

数据类型

对应前缀

Array数组

a

Boolean布尔

b

Float浮点

f

Function

fn

Interger(int)整型

i

Object对象

  • o

Regular Expression正则

re

String字符串

s

   

  1. 驼峰命名法

驼峰命名法分为两种,一种是大驼峰,另外一种为小驼峰。

1)         大驼峰又被称之为帕斯卡命名法,就是每个单词的首字母都是大写,

如:UserName

2)         小驼峰和大驼峰的区别在于,小驼峰第一个单词首字母为小写,第二个单词首字母为小写。

如:userName

  1. 蛇形命名法

其特点在于单词与单词之间使用下划线进行分隔。

如:user_name

三、关键字和保留字

关键字可用于表示控制语句的开始和结束或者用于执行特定操作,关键字是语言本身所保留的,不能用作标识符。

保留字还没有任何特定的用途,但在将来可能会被用作关键字。

JavaScript中的关键字与保留字有:

abstract、await、boolean、break、 byte、case、catch、char、 class. const、 continue、

finally、float、 for、 function、 goto、if、 implements、 import、 in、instanceof、 int、

interface、let、 long、 native、new、null、 package、private 、protected、 public、return、short、static、 super、 switch、 synchronized、 this、 throw、 throws、 transient、 true、 typeof、var、 volatile、 void、 while、 with、 yield 、try.

四、数据类型

数据类型分为两种:简单数据类型和复杂数据类型。

简单数据类型:

String、symbol、number、Boolean、underfined、null。

复杂数据类型:

Object

     在JavaScript中,可以通过typeof查看数据类型。

     Console.log(typeof  10);//number

     Console.log(typeof  true);//boolean

Console.log(typeof  ‘hello’);//string

Console.log(typeof  [1,2,3]);//object

五、声明变量

JavaScript中声明变量有三种:var,let,const。

Const和let的区别。

Const所声明的变量如果是简单数据类型,那么是不能在改变的。

Let所声明的变量无论是简单数据类型还是复杂类型,在后面都可以改变。

Var所声明的变量,允许重复声明;

重复声明不带有复制操作,js引擎会自动忽略后面的变量声明。

var test = 3;

var test;

console.log(test);//3

        重新声明是如果有赋值操作,那么后面的数据会覆盖前一个数据。

var test = 3;

var test = 5;

console.log(test);//5

六、作用域

1、  全局作用域

在全局作用中所声明的变量称称为全局变量,全局变量在任何地方都可以被访问。

let a = 5;//这是一个全局变量。

2、  局部作用域

在js中,一对大括号就能产生一个局部作用域。局部作用域里的变量称为局部变量,只能在这个局部作用域中才能被访问。

{   

let i = 10;   

console.log(i);//10

}

 console.log(i);//referenceError: I is not defined

        在局部作用域里,如果变量名和全局作用域里的变量名冲突,优先使用局部作用域里的变量。

let i = 10;

 {   

let i = 100;   

console.log(i);//100

}

console.log(i);//10

如果在局部作用域里声明变量没有书写关键字,会声明一个全局变量。

 

七、数据类型

1、  undefined类型

undefined类型就只有一个值,undefined。在使用变量但是没有为其赋值时,这个变量的值就是undefined。

注意:没有声明变量,使用时会报错,而不是undefined,但是打印时,显示的类型确实undefined。

let i;

console.log(typeof i);//undefined

console.log(typeof j);//undefined

console.log(i);//undefined

console.log(j); //ReferenceError: j is not defined

2、  null类型

null 类型的值只有一个,就是null,null表示一个空对象。从逻辑角度,null值表示一个空对象指针,用typeof操作符检测null的值会返回object。

let i = null;

console.log(typeof i);//object

       undefined值是从null值派生而来,对这两个数据进行相等测试时返回true。

             if(null == undefined){   

console.log('Yes');//Yes

 }

3、  布尔类型

布尔类型又被称为Boolean类型,就是真和假,这个类型的值只有两个,一个是true,另一个是false。

       let i = true;

console.log(i);//true

console.log(typeof i);//boolean

       注意:这两个值与数字值不一样,因此true不一定等于1,false也比一定等于0,Boolean类型值区分大小写,所以true、false和True、False不同。

虽然Boolean类型的值只有2个,但在ECMAScript中所有类型都可以转换为Boolean类型

console.log(Boolean("Hello"));//true

console.log(Boolean(42));//true

console.log(Boolean(0));//false

9个值对应布尔类型的假值:

  1、 “”:双引号的空字符

  2、‘’:单引号的空字符

  3、 ``:空字符模板

  4、0:数字0

  5、-0:js中-0和0为不同值

  6、NaN

  7、false

  8、null

  9、undefined

  

4、  数字类型

数字类型又被称作number类型,其值分为整数和实数。

1、  整数

let a = 12;

let b = -7;

注意:二进制以0b开头,八进制以0开头,十六进制以0x开头

        //二进制

let a = 0b101;//5

// 八进制

let b = 017;//15

//十进制

 let c = 21;//21

 // 十六进制

let d = 0xFD;//253

console.log(a,b,c,d);

2、  实数

实数就是常见的小数或者称为浮点数

表示浮点数方式的有两种:小数型和科学记数法型。

let a = 3.14;

let b = 9.12e+2;

console.log(a,b);//3.14 912

 

5、  NaN

NaN:Not a Number,非数值。特点任何涉及NaN的操作都会返回NaN。

let a = NaN + 10;

console.log(a);//NaN

      

NaN和任何值都不相等,包括自己本身。

        console.log(NaN === NaN);//false

 

isNaN()函数,判断一个参数是否不是数值。

console.log(isNaN(NaN));//true

console.log(isNaN("123"));//false

console.log(isNaN(123));//false

console.log(isNaN("Hello"));//true

console.log(isNaN(true));//false

返回值为true则不是数值。返回false是数值。

      NaN是属于number类型的。

console.log(typeof NaN);//number

6、  数值转换

1、  number():可以将非数值转换为数值,

使用number()函数时注意:

     如果是Boolean值,true和flase将分别转换为1和0.

     如果是数字,那么就是简单地传入和返回。

如果是null值,那么返回0;

如果是undefined,返回NaN。

console.log(Number(true));//1

console.log(Number(false));//0

console.log(Number(10));//10

console.log(Number(null));//0

console.log(Number(undefined));//NaN

 如果是字符串只包含数字。将转换为十进制,即”1”变成1. “123”变成123,”011”变成11(注意这里不会被当做八进制来处理)

 如果字符串中包含有效的十六进制格式,如”1.1”,则会被转换对应的浮点数值

如果字符串中包含有效的十六进制格式,如”0xf”,则会被转换同等大小的十进制整数。

如果字符串是空,则转换为0.

如果字符串包含上述格式之为的字符,则转换为NaN。

列如:

console.log(Number("1"));//1

console.log(Number("012"));//12

console.log(Number("0o10"));//8

console.log(Number("0b111"));//7

console.log(Number("3.14"));//3.14

console.log(Number("0xf"));//15

console.log(Number(""));//0

console.log(Number("123Hello"));//NaN

parseint():可以将非数值转换为数值,

       parseint()更多看是否有数字,有就会将其转换为数值。

如number()函数转换”123hello”是会转换为NaN,而parseint()转换为123。

遇到空字符串时number()函数会将其转换为0,而parseint()转换为NaN

遇到小数时parseint()函数会取整。

console.log(parseInt("1"));//1

console.log(parseInt("012"));//12

console.log(Number("0o10"));//8

console.log(Number("0b111"));//7

console.log(parseInt("3.14"));//3

console.log(parseInt("0xf"));//15

console.log(parseInt(""));//NaN

console.log(parseInt("123Hello"));//123

 parsefloat():可以将非数值转换为数值,

         parsefloat():只解析十进制,所以没有第二参数,该函数会将小数点的字符串转换为小数,没有小数点的数转换为整数。同样的parsefloat()转换更多的数值,”123hello”会被转换为123.

console.log(parseFloat("21"));//21

console.log(parseFloat("123Hello"));//123

console.log(parseFloat("0xA"));//0

console.log(parseFloat("3.14"));//3.14

console.log(parseFloat("22.34.5"));//22.34        

console.log(parseFloat("0908.34"));//908.34

console.log(parseFloat("3.1415e2"));//314.15

ES6将全局方法parseint()和parsefloat()等移植到number对象上。行为保持不变,目的逐步减少全局性的方法,使得语言逐步模块化。

//ES5写法

console.log(parseInt("12.34"));//12

console.log(parseFloat("12.34#"));//12.34

//ES6 写法

console.log(Number.parseInt("12.34"));//12

console.log(Number.parseFloat("12.34#"));//12.34

7、  字符串类型

字符串类型:可以用单引号,也可以用双引号。

注意:字符串的内容本身包含单引号或者双引号的话,需要和字符串界限符区分开

let a = "Hello 'World',welcome";// 正确

let b = 'Hello "World",welcome';// 正确

let c = "Hello "World",welcome";//正确

      字符串数据类型很霸道,他和其他数据类型相加都会转换为字符串类型。

              let a = "abcd";

let b = 13 + a;

let c = 3.14 + a;

let d = true + a;

let e = null + a;

              let f = undefined + a;

console.log(typeof b);//string

console.log(typeof c);//string

console.log(typeof d);//string

console.log(typeof e);//string

              console.log(typeof f);//string

tostring():该函数会将除了null和undelfined以外的数据类型转换为字符串

let a = 10,b = true,c = null,d;

console.log(typeof a.toString());//string

console.log(typeof b.toString());//string

console.log(typeof c.toString());// 报错

 console.log(typeof d.toString());

null和undelfined不能通过tostring()函数转换为相应的字符串,tostring()函数在转换数值是可以带有参数,可以将数值指定转换为几进制。

let i = 10;

console.log(i.toString());//10

console.log(i.toString(2));//1010

console.log(i.toString(8));//12

console.log(i.toString(10));//10

console.log(i.toString(16));//a

string:可以将5种数据类型转换为字符串

let a = 10,b = true,c = null,d;

console.log(String(a),typeof String(a));//10 string

console.log(String(b),typeof String(b));//true string

console.log(String(c),typeof String(c));//null string

console.log(String(d),typeof String(d));//undefined string

 

字符串模板:用反引号(`)标识

let str = `Hello World`;

console.log(str);//Hello World

console.log(typeof str);//string

console.log(str.length);//11

使用模板字面量语法创建一个字符串,并赋值给message变量,这时变量与普通字符串一样。如果在字符串中包含反引号,只需用反斜杠\转义。

ES6的模板字面量使用多行字符串更易创建,因为它不需要特殊的语法,只需在想要的位置换行,此处换行会同步在结果中。

let str = `Hello World`;

console.log(str);

//Hello

//World

console.log(typeof str);//string

console.log(str.length);//12

在反引号之内的所有空白符都是字符串的一部分,需留意缩进。

变量占位符由起始的${与结束的}来界定,之间允许放任意的js表达式。

let name = "xiejie";

console.log(`Hello,${name}`); //Hello,xiejie

占位符${name}会访问本地的变量name,并将其值插入message字符串中。Message变量会立即保留该占位符的结果。

占位符是js表达式,还可以嵌入运算符,函数调用等。

let count = 10,price = 0.25;

console.log(`${count} items cost $${(count*price).toFixed(2)}`);

//10 items cost $2.50

 

转载于:https://www.cnblogs.com/caoxiangwang/p/11407718.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值