一、

1 .JavaScript基础语法

注释:

1.单行注释:

//单行注释

多行注释:

/*

*较长的多行

*注释

*

*/

最好是针对某个功能来写注释

2. 语句

在JavaScript中,语句一般以分号结尾,每条语句独占一行来写代码;不写分号也不会报错,但是代码压缩时可能会有问题,建议加上分号。

let i = 10;

console.log(i);//10

 

可以使用C语言风格一对大括号将多条语句组合到一个代码块里。

{

let i = 10;

console.log(i);//10

}

3. 标识符

所谓标识符,就是指用来标识某个实体的一个符号。再说通俗一点,就是自己起一个名字,这个名字可以用来作为变量名,函数名,对象名等。在JavaScript中,虽然说标识符是自己取名字,但是也是需要遵守一定的规则, 其命名的规则大致可以分为2大类:硬性要求和软性要求。

硬性要求:

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

2.不能以数字开头

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

4.严格区分大小写

软性要求:

望文知意。

命名的三种方法

1.匈牙利命名法:

是微软公司下面以为匈牙利籍的程序员所发明的命名法则,其特点是标识符的名字以一个或者多个小写字母开头,表示该变量的数据类型;

| 数据类型               |  对应前缀   |

| --------                   -------

|  Array数组             |   a         |

|  Boolean布尔           |   b         |

|  Float浮点             |   f         |

|  Function              |   fn        |

|  Interger(int)整型   |   i         |

|  Object对象            |   o         |

|  Regular Expression正则|   re        |

|  String  字符串        |   s         |

前缀之后的是一个单词或多个单词的组合,该单词表明表明变量的用途。

例如:a_array,o_object,i_userAge ,b_isPassed.

2.驼峰命名法:

大驼峰:就是每一个单词都是首字母大写。例如:UserName

小驼峰:第一个单词的首字母是小写,后面单词的首字母是大写。例如:userName。

3.蛇形命名法:

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

这种命名法常见于Linx内核,c++标准库,Boost以及Ruby,Rust等语言。

例如:user_name,my_name.

4.关键字和保留字

首先需要弄清楚关键字和保留字的区别是什么。

ECMA-262描述了一组具有特定用途的关键字。这些关键字可用于表示控制语句的开始或结束,或者用于执行特定操作等。按照规则,关键字是语言本身所保留的,不能用作标识符。

ECMA-262还描述了另外一组不能用作标识符的保留字。尽管保留字在这门]语言中还没有任何特定的用途。但它们有可能在将来被用作关键字。

JavaScript中的关键字与保留字如下:

abstract、await、 boolean、 break、 byte、 case、 catch、 char、 class、 const、continue、debugger、default、 delete、 do、 double、 else、 enum、export、

extends、false、 final、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、 try、typeof、var、 volatile、 void、 while、 with、 yield

5. 数据类型介绍

在JavaScript中,数据类型整体上来讲可以分为两大类:简单数据类型和复杂数据类型

简单数据类型:

简单数据类型一共有6种:

string, symbol, number, boolean, undefined, null其中symbol类型是在ES6里面新添加的基本数据类型

复杂数据类型:

复杂数据类型就只有1种object

包括JavaScript中的数组,正则等,其类型都是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

二、变量

所谓变量,就是用于引用内存中存储的一一个值。当然, 我们在使用变量之前,还需要先做的一件事儿就是声明变量。

1.声明变量

在JavaScript中声明变量的方式有3种: var ,let ,const 。其中var现在已经不推荐使用了,因为会有变量提升等问题。(后面我们会具体来探讨此问题)

const和let的区别在于,const 所声明的变量如果是简单数据类型,那么是不能够再改变的。而let所声明的变量无论是简单数据类型还是复杂数据类型,在后面是可以改变的。示例如下:

const声明变量

const name = 'Bill';

name = 'Lucy';

//TypeError: Assignment to constant variable.

let声明变量

let name = 'Bill';

name = 'Lucy';

console.log(name);

2. 变量的赋值与初始化

利用=给变量进行赋值,第一次赋值叫做初始化。在声明变量时就会将变量给初始化,如下:

let a = 3

也可以一次性初始化多个变量,将其写在一行里面。

let x = 3,y = 4,z = 5;

如果声明变量时没有赋予初值,那么默认值为undefined

let a;

console.log(a);//undefined

3. 使用var声明变量

前面有提到过,在JavaScript中声明变量的方式有3种: var, let ,  const。其中var现在已经不推荐使用了。这是因为使用var来声明变量会伴随着一些问题。 当然,这些问题也经常被看作是JavaScript的一些特点,例如重复声明和遗漏声明。

重复声明

如果是使用var关键字来声明的变量,那么是允许重复声明的。只不过这个时候会忽略此次声明。如果重新声明并且带有赋值,则相当于是重新赋值

重复声明不带有賦值操作,JS引擎会自动忽略后面的变量声明

var test = 3;var test;

var test;

console. log(test);//3

重新声明时如果带有赋值操作,那么会进行一一个数据的覆盖

var test = 3;var test = 5;

var test = 5;

console. log(test);//5

需要注释重复声明仅仅是使用var关键字时可以这样,如果是在严格模式中,或者使用let或const的话是会报错的。

遗漏声明

如果试图读取一个没有声明的变量的值,JS会报错

console.log(a);

//ReferenceError: a is not defined

JS允许遗漏声明,即直接对变量赋值而无需事先声明,赋值操作会自动声明该变量。

{

a = 5;

console.log(a);//5

}

console.log(a);//5

4. 作用域

1.全局作用域

这是JS引擎-进来就处于的运行环境。在全局作用域的中所声明变量称之为全局变量。全局变量的特点在于变量在任何地方都能被访问。

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

2.局部作用域

在JavaScript中,一对大括号就可以产生一个局部作用域。局部作用域里面的变量称之为局部变量,既然是局部变量,那么就只能在这个局部的作用域里面能访问到,外部是访问不到的。

{

leti=10;

console. log(i) ;//10

console.log(i);

//ReferenceError: i is not defined

顺带一提的是,在大括号中用var声明的变量不是局部变量,而是一个全局变量。这其实也是最早使用var来声明变量所遗留下来的一一个问题。

{

var i = 10;

console.log(i);//10

}

console.log(i);//10

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

let i = 10;

{

let i = 100;

console.log(i);//100

}

console.log(i);//10

 

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

 

{

i = 10;

}

console.log(i);//10

 

 

三、数据类型

 

数据类型介绍

 

在JavaScript中,数据类型整体上来讲可以分为两大类:简单数据类型和复杂数据类型

简单数据类型

简单数据类型一共有6种:

string, symbol, number, boolean, undefined, null其中symbol类型是在ES6里面新添加的基本数据类型

 

1.Undefined类型

只有一个值,即undefined值。使用var声明了变量,但未给变量初始化值,那么这个变量的值就是undefined。

2.Null类型

null类型被看做空对象指针,前文说到null类型也是空的对象引用。

3.Boolean类型

该类型只有两个值,true和false

4.Number类型

Number类型包含整数和浮点数(浮点数数值必须包含一个小数点,且小数点后面至少有一位数字)两种值。

NaN:非数字类型。特点:1.涉及到的 任何关于NaN的操作,都会返回NaN  2. NaN不等于自身。

isNaN() 函数用于检查其参数是否是非数字值。

isNaN(123)  //false   isNaN("hello")  //true

5.String类型

字符串有length属性。

字符串转换:转型函数String(),适用于任何数据类型(null,undefined 转换后为null和undefined);toString()方法(null,defined没有toString()方法)。

6 symbo类型

ES5中包含5种原始类型:字符串、数字、布尔值、null和undefined。ES6引入了第6种原始类 型:symbol

ES5的对象属性名都是字符串,很容易造成属性名冲突。比如,使用了 一个他人提供的对象,想 为这个对象添加新的方法,新方法的名字就有可能与现有方法产生冲突。如果有一种机制,保证 每个属性的名字都是独一无二的,这样就从根本上防止了属性名冲突。这就是ES6引入symbol的 原因。

 

复杂数据类型

复杂数据类型就只有一种object

包括JavaScript中的数组,正则等,其类型都是object类型

查看数据类型

在JavaScript中,我们可以通过typeof运算符来查看一个数据的数据类型

console. log( typeof 10);//number

console. log(typeof true);//booleanconsole. log(typeof 'Hello');//stringconsole. log(typeof [1,2,3]);//object

JavaScript编程基础的更多相关文章

  1. JavaScript编程基础2

    1,数据类型相关操作 使用typeof x函数查看变量的数据类型: typeof "John" // 返回 string typeof 3.14 // 返回 number type ...

  2. javascript编程基础1

    1,javascript能干什么? 直接写入html中: <script> document.write("<h1>这是一级标题</h1>") ...

  3. Web编程基础--HTML、CSS、JavaScript 学习之课程作业“仿360极速浏览器新标签页”

    Web编程基础--HTML.CSS.JavaScript 学习之课程作业"仿360极速浏览器新标签页" 背景: 作为一个中专网站建设出身,之前总是做静态的HTML+CSS+DIV没 ...

  4. javascript函数式编程基础随笔

    JavaScript 作为一种典型的多范式编程语言,这两年随着React\vue的火热,函数式编程的概念也开始流行起来,lodashJS.folktale等多种开源库都使用了函数式的特性. 一.认识函 ...

  5. JavaScript编程:javaScript核心基础语法

    1.javaScript核心基础语法: javaScript技术体系包含了5个内容:          1.核心语言定义:          2.原生对象和雷子对象:          3.浏览器对象 ...

  6. JavaScript入门基础

    JavaScript基本语法 1.运算符 运算符就是完成操作的一系列符号,它有七类: 赋值运算符(=,+=,-=,*=,/=,%=,<<=,>>=,|=,&=).算术运 ...

  7. javascript 闭包基础分享

    javascript 闭包基础分享 闭包向来给包括JavaScript程序员在内的程序员以神秘,高深的感觉,事实上,闭包的概念在函数式编程语言中算不上是难以理解的知识.如果对作用域,函数为独立的对象这 ...

  8. 【1】JavaScript编程全解笔记(一)

    1.概述 本书涵盖了 JavaScript 各个方面的主题,从客户端以及服务端 JavaScript 等基础内容,主要讲了  HTML5.Web API.Node.js 与 WebSocket 等技术 ...

  9. JavaScript的基础学习

    由js和python想到的: 弱类型语言 js 中的数据在进行算数运算时,会自动转换类型强类型语言 变量的值的数据类型一旦确定,使用时不能改变 动态语言:编译时不知道数据类型,只有在执行时才知道数据类 ...

随机推荐

  1. linux mysql主从复制配置

    1.设置主库master的servie-id值并且开启bin-log功能参数vi /etc/my.cnf修改my.cnf的参数:[mysqld]server-id=1 //每一个库的server-id ...

  2. vue使用axios提交formdata格式的数据

    参考: https://www.cnblogs.com/qwert1/p/8909455.html https://blog.csdn.net/qq_42984640/article/details/ ...

  3. sql语句之条件,分页,排序

    sql语句之条件,分页,排序

  4. Nacos v0.7.0:对接CMDB,实现基于标签的服务发现能力

    Nacos近期发布了0.7.0版本,该版本支持对接第三方CMDB获取CMDB数据.使用Selector机制来配置服务的路由类型.支持单机模式使用MySQL数据库.上线Node.js客户端,并修复了一些 ...

  5. [NOI 2018]冒泡排序

    题意:求所有字典序大于给定序列且满足条件的排列个数之和. 思路: 考虑dp即可,打表出卡特兰数优化,直接dp可以44... #include <bits/stdc++.h> using n ...

  6. linux下phpstudy安装

    linux下phpstudy安装 一.总结 一句话总结: 就是下载然后一步步用指令安装即可 二.linux下phpstudy安装 参考:linux下phpstudy安装https://www.cnbl ...

  7. AutoMapper Profile用法

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using AutoMappe ...

  8. PAT甲级——A1125 Chain the Ropes【25】

    Given some segments of rope, you are supposed to chain them into one rope. Each time you may only fo ...

  9. 解决jquery调用NET webservice跨域的问题

    声明,解决方案由网上收集而来,个人整理.有别人的,也有我的. 一.webserive端 1.web.config 需要在web.config的configuration节点中加入如下的黑体部分内容. ...

  10. <每日一题>题目30:已知一个长度n的无序列表,元素均是数字,要求把所有间隔为d的组合找出来

    def select_d(list,d): # list = sorted(list) sum = {} for i in list: if i+d in list: sum[i] = i+d ret ...