11月8日笔记

语句和变量
1.语句
语句是完成某种特定任务的代码,在Javascript中每条语句要以”;”结束;
语句在定义的时候可以出现在一行中,也可以一行出现多条语句,都是允许的;
表达式可以单独出现在JS代码中,但是没有任何意思;

var _div = ""; var _div = "";
    // 没有任何的意思
    1 + 2;

2.变量
变量是对“值”的引用。在其他的场合中,我们有的时候把引用也成为地址或指针。
在JS中,定义变量使用“var”关键字。

 var _msg = "hello";
    // 上述的语句,在JS解释器中其实是分了两个步骤完成
    // 第一步:
    var _msg;
    // 此时变量_msg的值为undefine;
    // 第二步:
    _msg = "hello";

引申:基本数据类型和引用数据类型
var可以不出现变量的定义中,但是他的作用和出现var定义变量是有区别的。
如果在变量声明的时候没有使用var,那么该变量则会变成一个全局的变量。
3.输出语句
JavaScript 可以通过不同的方式来输出数据:

使用 window.alert() 弹出警告框。
使用 document.write() 方法将内容写到 HTML 文档中。
使用 innerHTML 写入到 HTML 元素。
使用 console.log() 写入到浏览器的控制台。
document.getElementById(“demo”).innerHTML=”段落已修改。”;
document.write(Date());

一切皆对象
1.什么是对象
世间任何一个我们需要进行研究的事物都是一个对象。对象具有状态,一个对象用数据值来描述它的状态。对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。

2.怎样构造对象

 var person={
    "name":"小明",
    "age":"18",
    "like":function(){
                return "喜欢打篮球,弹吉他"
          }
    }

    var person=new Object();
    person.name='小明';
    person.sex='男';
    person.method=function(){
      return this.name+this.sex;
    }

3.属性的操作
有两种方式读取对象的属性,一种使用点运算符,还有一种是使用方括号运算符。

var obj = {
   name : "Tom",
   age : 27,
   sex : true,
   3:"333"
};
console.log(obj.name); // Tom
console.log(obj["name"]); // Tom
console.log(obj[3]); // 333

4.检查变量是否声明
在判断属性在变量中是否存在的时候,我们一般使用in运算符进行判断,虽然直接(obj.score)有时也会达到一样的效果,但是有漏洞,比如socre的属性为“”或false时,就会达不到预期的效果。

var obj = {
   name : "Tom",
   age : 27,
   sex : true,
   3:"333",
   score : ""
};
if (obj.score) {
   console.log("score is exist");
}  else {
    console.log("score is not exist");
}
// score is not exist
// 要求使用 in 这种严谨的判断方式
if ("score" in obj) {
    console.log("score is exist");
}  else {
    console.log("score is not exist");
}
// score is exist

5.属性的赋值
可以通过点操作符和方括号操作符对对象的属性进行赋值。
Javascript允许对对象的属性进行“后绑定”,你可以在变量声明后的任意时刻,新增属性,并进行赋值,没有必要在对象定义的时候,就把对象的属性都定义好。
var tobj = {};
tobj.name = “Jack”;
tobj[“age”] = 20;
console.log(tobj.name + ” ” + tobj.age ); // Jack 20
6.查看所有属性
通过Object.keys(obj)方法获取到所有的属性数组

var tobj = {};
tobj.name = "Jack";
tobj["age"] = 20; 
console.log(Object.keys(tobj)); ["name","age"]
7.delete命令
delete命令用于删除对象的某个属性,如果删除成功,返回truevar tobj = {};
tobj.name = "Jack";
tobj["age"] = 20;
console.log(tobj.name + " " + tobj.age );
console.log(Object.keys(tobj));  // ["name","age"]
delete tobj.name;
console.log(tobj.name); // undefined
console.log(Object.keys(tobj)); // ["age"]

标识符、注释和区块
1.标识符
标识符简单的理解就是“起名字”。在给变量、方法等定义的名称都可以理解为标识符。
标识符定义的规则:

第一个字符:任意的Unicode字母(包含英文字母和其他语言的字母),以及美元符号$和下划线_;
第二个字符及后面的字符开始可以包含0-9的数字;
    var a = ""; // 合法
    var $ = ""; // 合法
    var abc = ""; // 合法
    var _abc = ""; // 合法
    var _a$1 = ""; // 合法
    var 1a = ""; // 就是不合法的标识符定义
除此之外,JavaScript使用的关键字也不能作为标识符的定义
ECMA-262 描述了一组具有特定用途的关键字。这些关键字可用于表示控制语句的开始或结束,或者用于执行特定操作等。按照规则,关键字也是语言保留的,不能用作标识符。以下就是ECMAScript的全部关键字(带*号上标的是第5 版新增的关键字):
![这里写图片描述](https://box.kancloud.cn/b33053bebd68b0f7f3b7a4ef3ac47c80_2307x718.png)


ECMA-262 还描述了另外一组不能用作标识符的保留字。尽管保留字在这门语言中还没有任何特定的用途。但它们有可能在将来被用作关键字。以下是ECMA-2623 版定义的全部保留字:https://box.kancloud.cn/1fe0c4529f0dd4ab08709e211f410aa6_2307x821.png5 版把在非严格模式下运行时的保留字缩减为下列这些:
![这里写图片描述](https://box.kancloud.cn/43dc12662335e17a6b4902cac1d5b661_2311x212.png)


在严格模式下,第5 版还对以下保留字施加了限制:

![这里写图片描述](https://box.kancloud.cn/fb6c139aa043de5dfa3e88f334443995_2305x309.png)

2.注释
注释让代码的可读性增强,并可以对相关的代码提供必要的说明。JavaScript的引擎会忽略掉注释部分的代码。
注释的分类:
单行注释://
多:/*/**
 * 函数名称:add
 * 函数作用:完成加法运算
 * 参数:a:加数 b:加数
 * 返回值:数值型
 * 作者:Aaron
 * 版本:1.0
 * 时间:2017-04-17
 */
function rs2() {
   // xxxxxxx
   var gs = document.getElementById("gs").value;
   var rss = eval(gs);
    document.getElementById("rs").value = rss;
}


3.区块
JavaScrip使用大括号将多行相关语句的代码包裹起来,成为区块(block)。

不同于其他编程语言,在区块中定义的变量,其生命周期不单在区块范围内,超出区块也能使用在区块中定义的变量。

条件语句
在默认的语句中,程序总是一行一行的去解析执行特定的语句,但是有的场景下,顺序的执行语句无法满足程序的要求。
1.if 结构
// if结构语句的语法
if (expression)
{
statement
}
// 表达式最后的值必须是个boolean值 true或者false
在条件表达式中,数字0和非0也可以表现为false和true。
在Javascript中,=、==、===的区别
“=”:赋值运算符
“==”:值相等
“===”:严格相等运算符
在statement中如果出现多行语句必须要使用{}包裹,如果只有一行可以不用{};

在还是一个初级程序员的时候,为了代码的可读性,还是建议将只有一行代码的语句块用{}包裹。

2.if…else结构

// if结构语句的语法

if (expression)
{
statement
} else {
statement
}
// 在else代码中执行的条件是紧跟着自己的if的非条件
// 使用if结构和if…else结构其实都是可以实现相同的功能的,只不过在表达方式上有所区别。
// 代码块说明

var age = 80;

if (age <= 18)
{
    console.log("1-我未满18岁");
}
if (age > 18 && age <= 30)
{
    console.log("1-我在18-30岁之间");
}
if (age > 30 && age <= 50)
{
    console.log("1-我在30-50岁之间");
}

if (age <= 18)
{
    console.log("2-我未满18岁");
} else {
    if (age <= 30)
    {
        console.log("2-我在18-30岁之间");
    } else {
        if (age <= 50)
        {
            console.log("2-我在30-50岁之间");
        }
    }
}

if (age <= 18)
{
    console.log("3-我未满18岁");
} else if (age <= 30){
    console.log("3-我在18-30岁之间");
} else if (age <= 50){
    console.log("3-我在30-50岁之间");
} else {
    //
    ;
}

3.switch结构
switch我们一般用在多个离散的值进行条件判断时使用,特别是有很多的值的时候。

var monthNum = 2;
switch (monthNum)
{
    case 1:
        console.log("一月");
        break;
    case 2:
        console.log("二月");
        break;
    case 3:
        console.log("三月");
        break;
    case 4:
        console.log("四月");
        break;
}

var sex = "man";
switch (sex)
{
    case "man":
        console.log("man");
        break;
    case "woman":
        console.log("woman");
        break;
    default:
        console.log("in default");
}
  1. 三元运算符
    三元运算符我们一般用简单的逻辑判断和赋值语句中。
var sexFlag = 2;
    var sexStr;

    if (sexFlag === 1) {
        sexStr = "man";
    } else {
        sexStr = "woman";
    }
    // 语法(condition) ? expre1 : expre2;
    // 实现的效果和上述的if...else结构一样
    sexStr = (sexFlag === 1 ? "3-man" : "3-woman");
    console.log(sexStr);

循环语句
1.while循环
循环语句是用于重复执行某些操作。
s1;
while (expression) {
statement;
}
s2;hile语句时,判断expression的值是否为真,如果真,就执行{}里面的代码块,当代码块执行完成后,继续判断expression是否为真,直到为假的时候,才会执行到s2语句。

这里要注意的是,如果expression一直为真,那么程序就死循环了。
如果循环体内只有一条语句,那么{}可以省略,但是为了程序的可读性,不建议省略。

var i = 1;
   var sumi = 0;
   while (i <= 10000) {
      sumi = sumi + i;
      i = i + 1;
   }
   document.write("sumi=" + sumi);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值