Js学习简记(一)

前言:本想学习Taro那一套然后开发小程序的,当环境配置好之后开发的时候,发现很多的都依赖于JavaScript所以只能暂停搁置Taro的文章学习JS,这纯属学习笔记,大神忽略~

  • 内部应用javascript
<script type="text/javascript">
      function sayHello() {
        alert("Hello World")
      }
</script>

注意:1.包含在<script>中的代码将会从上而下一次解释,保存在自己的环境中,在解释器对<\/script>元素内部的所有代码解释完以前,
页面的其余内容不会被展示
2.使用<script>嵌入javaScript代码时,不要在任何代码中出现"</script>字符串,否则浏览器加载将会产生错误"
  • 外部应用javascript
<script type="text/javascript" src="../js/test.js"></script>

注意:带有src属性<script>元素不应该在<script>和</script>标签之间包含额外的javascript代码,
如果包含了嵌入的代码则只会下载并执行外部脚本文件,嵌入的代码会被忽略。
src可以加载外部域的js文件(外网服务器文件,和img相似)

变量

javascript类型是松散的,所谓的松散类型就是可以用来保存任何类型的数据。
换句话说就是每个变量仅仅是一个用于保存值得占位符而已,定义变量时,
使用var操作符+变量名。

注意:

  • 不建议修改变量所保存值的类型,但是改变变量值得类型是有效的(var name="zhangsan",name=123)

  • 使用var定义的变量将成为定义该变量的局部变量。也就是说如果在函数定义了一个变量。那么这个变量在函数退出时就会被销毁。
    如:

function test() {
  var name = "james"
}

test();
alert(name);//错误的

注意:变量name是在函数中使用var定义的。当函数被调用时,就会创建变量并为其赋值。而在此之后这个变量会立马被销毁。
因此会引起上一句代码的错误。不过可以像下面这样,省略var操作符,创建一个全局变量。

function test() {
  name = "james"
}
test();
alert(name);// 弹出james

解释:省略了var操作符,因而message变成了全局变量。这样只要调用过一次test()函数,这个变量就定义了,
就可以在函数外部任何地方进行访到了。

  • 虽然省略var操作符可以定义全局变量,但是不推荐这种做法,因为在局部作用域定义的全局变量很难维护,
    而且有意的忽略了var操作符,也会由于相应变量不会马上就有定义而导致不必要的混乱。
    给未经声明的标量赋值在严格模式下,会抛出ReferenceError错误。

技巧:可以用一条语句定义多个变量,把每个变量用逗号分开即可(初不初始化均可),如 var name,age = 18, sex;

数据类型

javascript有五种简单数据类型和一种复杂数据类型

  1. Undefined ------使用var声明变量但是没有对其赋值,就是undefined,默认就是undefined所以不需要显示的为一个变量设置值为undefined,字面值undefined主要是用于比较。未初始化和未使用typeof操作符都会返回undefined值,这两种变量从技术角度有本质区别,但是实际上无论哪种变量都不可能执行真正的操作。虽然变量未初始化会自动赋予undefined,但是显示的初始化变量依然是明智的选择,这样就可以区分type的undefined就知道未声明还是未初始化。
  1. Null ------- 只有一个值,这个值就是null,从逻辑角度,null值表示一个空对象指针,而这也是typeof(null) 返回object的原因。如果定义的变量准备在将来保存对象,那么最好将变量初始化的null,这样只要检查null值就知道相应的变量是否保存了一个对象的引用。可以区分null和undefined,实际上undefined派生自null值,所以 null==undefined。
  1. Boolean ------- 布尔值 只有 true 和 false 两个值
  1. Number ------- 数值 整数或者浮点数 如果计算结果超出数值范围则会自动转成Infinity(无穷),判断一个函数是不是有穷的可以使用isFinite()函数。如果是有穷的则返回true.NaN是一个特殊的数值,这个数值用于表示本来要返回数值的操作数未返回的情况(这样不会报错),比如任何数值除以0都会返回NaN. isNaN()函数,判断一个值是不是数值。任何不是数值的值都会返回true,是数值的则会返回false。有三个函数可以把非数值转成数值类型。Number() 可以用于任何数据类型,parseInt(),parseFloat() 这连个函数把字符串转成数值。
  1. String -------字符串 可以使用""或者'',每个值都有一个toString()方法。如果值是null toString()返回null,如果是undefined toString() 返回undefined。
  1. Object -------一组数据和功能的集合。对象可以通过执行new操作符后跟要创建的对象类型名称来创建。而创建创建Object类型的实例并为其添加属性或者方法,就可以创建自定义对象。如:var o = new Object();如果不给构造函数传递参数,则可以省略后面的圆括号。即:var o = new Object; Object和java中一样是基础类型。Object的所有属性和方法存在于子类中。
    • constructor:保存着用于创建当前对象的函数。
    • hasOwnProperty(properName):用于检查给定的属性在当前对象实例中是否存在。作为参数的属性名必须是字符串。
    • isPrototypeOf(object):用于检查传入的对象是否是另一个对象的原型。
    • propertyIsEnumerable(propertyName):用于检查给定的属性能否使用 for-in语句来枚举。
    • toLocaleString():返回对象的字符串表示,该字符串与执行环境地区对应。
    • toString():返回对象的字符串表示。
    • valueOf():返回对象的字符串,数值或者boolean值,通常与toString()返回值相同。
  • typeof操作符
    由于js是松散类型,所以提供了typeof检测给定的数据类型,和上面类型定义相同。多了一种函数 function 如果该类型是函数。

    注意:typeof是一个操作符而不是函数。typeof(null)返回object,因为null被认为是一个空对象引用。函数也是一种特殊属性。因此通过typeof操作符来区分函数和对象很有必要。

总结

以上主要记录了对js的引用方式,变量定义,基本数据类型的定义以及类型检测。仅做记录~

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,525评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,203评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,862评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,728评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,743评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,590评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,330评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,244评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,693评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,885评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,001评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,723评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,343评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,919评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,042评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,191评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,955评论 2 355

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,149评论 0 13
  • 第3章 基本概念 3.1 语法 3.2 关键字和保留字 3.3 变量 3.4 数据类型 5种简单数据类型:Unde...
    RickCole阅读 5,128评论 0 21
  • 第一章: JS简介 从当初简单的语言,变成了现在能够处理复杂计算和交互,拥有闭包、匿名函数, 甚至元编程等...
    LaBaby_阅读 1,672评论 0 6
  • 有人说过,很多弯路到最后都成了直路,所有的坑到最后也都成了坦途;所谓的直路和坦途并不是摆在眼前的,都是不断的的...
    老衲法号一眉道人阅读 1,331评论 0 4
  • 可能在大多贸易人的心里,尼日尼亚就是一个骗子国家,骗吃骗喝,骗样品骗车费无所不骗,但是我想对于出口的外贸朋友来说,...
    奶茶一定要抹茶的阅读 552评论 0 1