一、

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. sql实现查询某个字段在哪个表里 及结构是什么

    ) --数据库名 ) set @dbname2='aab' select @str = ' SELECT 表名=d.name,字段名=a.name,序号=a.column_id, 标识=is_iden ...

  2. 《人月神话》读书笔记 PB16110698 第七周(~4.19)

    每逢读书笔记上交作业时刻,班级blog页面上总能看到<人月神话>相关的读书笔记,本次软工课邓老师推荐的第一篇读书笔记也是写的<人月神话>,算是对它“耳濡目染”了.本周,我终于抽 ...

  3. 前端常用的库和实用技术之JavaScript 模块化

    模块化概念 AMD是requirejs在推广过程中对模块化定义的规范化产出. 异步加载模块,依赖前置,提前执行 Define定义模块define(['require','foo'],function( ...

  4. 微信公众号开发API接口大全

    在本文中,我们列出微信公众平台上可以使用的API接口以及举例如何在微信公众平台调用这些接口实现相应的功能. 接口调用说明: ① Appkey请使用的微信公众号,不要使用默认的trailuser ② 接 ...

  5. thinkphp 切换数据库

    除了在预先定义数据库连接和实例化的时候指定数据库连接外,我们还可以在模型操作过程中动态的切换数据库,支持切换到相同和不同的数据库类型.用法很简单, 只需要调用Model类的db方法,用法: 常州大理石 ...

  6. C/C++实现单向循环链表(尾指针,带头尾节点)

    C语言实现单向循环链表,主要功能为空链表创建,链表初始化(头插法,尾插法),链表元素读取,按位置插入,(有序链表)按值插入,按位置删除,按值删除,清空链表,销毁链表. 单向循环链表和单向链表的区别:( ...

  7. ros清理日志文件

    检查日志文件: rosclean  check 清理日志文件: rosclean purge

  8. 判断MDI窗体的子窗体是否存在

    //***************************************************************************//函 数名: CreateForm//返 回 ...

  9. jquery判断是pc端还是移动端

    原文地址:https://www.cnblogs.com/mo-cha/p/6038872.html $(function(){ var system = { win: false, mac: fal ...

  10. sql 查询问题

    在做数据导出时候,当某个表某字段含有单引号时候老是报错,所以要排除这种情况: sql查询某表某字段值带单引号情况 select 主键码 from 馆藏书目库 where 题名 like '%''%' ...