JavaScript是一种轻量级的编程语言,简称JS。JS是可插入 HTML 页面的编程代码,JS插入 HTML 页面后,可由所有的现代浏览器执行。
JS主要包括BOM操作和DOM操作。var声明变量,分号结束,+为字符串的连接符,JS变量是动态的,可以用不同的类型。变量类型有字符串(String)、数字(Number)、布尔(Boolean)、数组(Array)、对象(Object)、空(Null)、未定义(Undefined),JS基本的语句有if语句,if else语句,while语句 ,for语句。
jawascript的三大组成
1. ECMAScript (语法) 脚本脚本语言 核心 函数
2. BOM 浏览器对象模型
3. DOM 文档对象模型
区分大小写
1.由字母,数字,下划线,美元($)组成
2.不能以数字开头
3.不能使用关键字,保留字等作为标识符
4.要区分大小写
JS基础知识入门教程。
//字符串
var name = "leixuesong";
//字符串长度
name.length;
//数字
var age = 20;
//数组循环
var arr = [1,2,3];
for(var i=0;i<arr.length;i++){
console.log("index:" +i+"--value:"+arr[i]);
}
//数组长度
arr.length;
//对象
var obj = {name:"leixuesong",age:"21"};
//对象遍历
for(i in obj){
console.log("key:" +i+"--value:"+obj[i]);
}
//null
var cars=null;
var a = 10;
var b = 20;
//if语句
if(a < b){
console.log("a小于b!");
}
if(b > a){
console.log("b大于a!");
}
if(a != b){
console.log("两个数值不相等!");
}
//if else语句
if( a == b){
console.log("两个数值相等!");
}else{
console.log("两个数值不相等!");
}
if( a < b){
console.log("a小于b!");
}else if(a == b){
console.log("a相等b!");
}else{
console.log("a大于b!");
}
//switch语句
var day=new Date().getDay();
switch (day)
{
case 0:
x="Today it's Sunday";
break;
case 1:
x="Today it's Monday";
break;
case 2:
x="Today it's Tuesday";
break;
case 3:
x="Today it's Wednesday";
break;
case 4:
x="Today it's Thursday";
break;
case 5:
x="Today it's Friday";
break;
case 6:
x="Today it's Saturday";
break;
}
//for语句
for (var i=0; i<5; i++){
console.log(i);
}
//while语句
while (i<5){
console.log(i);
i++;
}
//do/while 循环
do{
console.log(i);
i++;
}while(i<5)
九九乘法表
var str = "";
for(var i =1 ; i <=9; i++){
for(var j = 1; j <=i ; j++){
str+=i + " * " + j + " = " + i*j + " ";
}
str+= "<br />";
}
document.write(str);
js的六大累
1、数字:
浮点数(3.14)+整数(1);
2、字符串:
包括由任意数量字符组成的序列,例如:‘a’,‘one’;
3、布尔值:
true+false;
4、undefined:
当我们试图访问一个不存在的变量时,就会得到一个特殊值:undefined。
除此之外,是用已声明但却未赋值的变量也会如此,因为javascript会自动将变量在初始化之前的值设定为undefined;undefined的值只有一个,undefined;
5、null:
这是另一种只包含一个值的特殊数据类型。所谓的null值,通常是指没有值或者空置,不代表任何东西。
null值与undefined最大的不同在于,被赋予null的变量通常被认为是已经定义了的,只不过它不代表任何东西。
6、对象:
任何不属于以上五种基本类型的值都会被认为是一个对象。甚至有时候我们也会将null视为对象,即一个不代表任何东西的对象。
javascript中的数据类型主要分为以下两个部分:基本类型(上面列出的五种类型)+非基本类型(即对象)
js变量的作用域
一、
在js中,变量的定义并不是以代码块作为作用域的,而是以函数作为作用域。也就是说,如果变量是在某个函数中定义的,那么,它在函数以外的地方是不可见的。但是,如果该变量是定义在if或者for这样的代码块中,它在代码块之外是可见的。
二、
在js中,术语“全局变量”指的是定义在所有函数之外的变量(也就是定义在全局代码中的变量),与之相对的是“局部变量”,所指的是在某个函数中定义的变量。其中,函数内的代码可以像访问自己的局部变量那样访问全局变量,反之则不行。
三、
下面是具体示例,请注意两点:
1> 函数f()可以访问变量global。
2> 在函数f()以外,变量local是不存在的。
var global = 1;
function f() {
var local = 2;
global ++;
return global;
}
测试结果如下:
还有一点要注意:如果我们声明一个变量事没有使用var语句,该变量就会被默认为全局变量。让我们来看一个示例:
function f () {
local = 2;
}
undefined
local;
VM432:1 Uncaught ReferenceError: local is not defined
f();
undefined
local;
2
图:
我们来看上面代码发生了什么:首先,我们在函数f()中定义了一个变量local。在该函数被调用之前,这个变量并不存在。该变量会在函数首次被调用时创建,并被赋予全局作用域。这使得我们可以在该函数以外的地方访问它。
四、最佳实践:
1>尽量将全局变量的数量降到最低,以避免命名冲突。
2>最好总是使用var语句来声明变量。
3>可以考虑使用“单一var”模式,即,仅在函数体内的第一行使用一个var来定义这个作用域中所有需要的变量。这样一来,我们就能很轻松地找到相关变量的定义,并且在很大程度上避免了不小心污染全局变量的情况。
五、变量提升
举例:
var a = 123;
function f(){
alert(a);
var a = 1;
alert(a);
}
f();
图:
你可能会想当然的认为alert()第一次显示的是123(即全局变量a的值),而第二次显示的是1(即局部变量a)。但事实并非如此,第一个alert()实际上显示的是undefined,这是因为函数域始终优先于全局域,所以全局变量a会覆盖掉所有与它同名的全局变量,尽管在alert()第一次被调用时,a还没有被证实定义(即,该值是undefined),但该变量本身已经存在于本地空间了。这种特殊的现象叫做提升。
结果如图:
也就是说,当js执行过程进入新的函数时,这个函数内被声明的所有变量所有变量都会被移动(或者说提升)到函数最开始的地方。另外,需要注意,被提升的只有变量的声明,这意味着,只有函数体内声明的这些变量在该函数执行开始时就存在,而与之相关的赋值操作并不会被提升,它还在原来的位置上。譬如,在原来的例子中,局部变量本身被提到了函数开始处,但并没有在开始处就被赋值为1。这个例子可以被等价地改写为:
package dayone1;
public class fordowhile {
public static void main(String[]args){
int i=1;
do{
System.out.println("i等于:"+i);//循环体语句
i++;//控制条件语句
}
while(i<=10);//判断条件
}
}
* A:循环结构do...while语句的格式:
*
do {
循环体语句;
}while(判断条件语句);
完整格式;
初始化语句;
do {
循环体语句;
控制条件语句;
}while(判断条件语句);
* B:执行流程:
* a:执行初始化语句
* b:执行循环体语句;
* c:执行控制条件语句
* d:执行判断条件语句,看其返回值是true还是false
* 如果是true,就继续执行
* 如果是false,就结束循环
* e:回到b继续。