Skip to content

Instantly share code, notes, and snippets.

@interdigitize
Last active February 21, 2020 03:38
Show Gist options
  • Save interdigitize/a4b43182c63b21b7339eacec6759c9be to your computer and use it in GitHub Desktop.
Save interdigitize/a4b43182c63b21b7339eacec6759c9be to your computer and use it in GitHub Desktop.
Differences between JavaScript and Python

Data Types

Python JavaScript
String immutable String immutable
Integer whole numbers
Float decimals
Number
- includes NaN and Infinity
Bigint
- for integer values larger than 2^53 or less than -2^53
- in Jan 2020, not fully supported by all browsers
Boolean
- True and False are capitalized
Boolean
- true and false are lowercase
Dictionary Object
- includes Array, null, RegExp, Math, Map, WeakMap, Set, WeakSet, Intl, Reflect, WebAssembly, and JSON
undefined
Function
- includes Date, Promise, ArrayBuffer, DataView, Proxy, and Error
- arguments is an array-like object available inside of a function
Symbol
List: similar to an array
Tuple: similar to a list, but immutable and order matters e.g (1, 3, 20) could represent hours, minutes, and seconds

Type Checks and Type Conversion

Python JavaScript
check type with type() typeof
to a string str() data.toString() or type coercion by concatenation
to a number parseInt()
- expects a string and parses up to the first non-digit and returns whatever it parsed
- The second param, radix, is 10 by default

Number()
- will parse any type and try to convert it to a number
- returns NaN if it can't convert it to a number

Comparisons and Logical Operators

Python JavaScript
equal == ===
not equal != !==
not not !
or or ||
and and &&

Loops

Python JavaScript
you can break out of while and for loops yes yes
for loops start with... 0, for x in range(5) iterates 0-4
pass two params to indicate a different starting point for x in range(1, 5)
pass a third param to change the step for x in range(1, 5, 2)
Note that 5 is not inclusive
whatever is defined, for(var i = 0; i < 5; i++){}
for - loops through a block of code a number of times
for/in - loops through the properties of an object
for/of - loops through the values of an iterable object

Functions

Python JavaScript
define a function def functionName(): function functionName() {} or () => {} or assign the function to a var to name it
return value if no return value is specified none undefined
what can be returned multiple values one value
scoped self reference self this

Strings

Python JavaScript
check the length of a string len(<string>) <string>.length
iterate over each character in a string for character in string
access the char at index i starting at zero <string>[i]
access the substring at index i ending at index j-1 <string>[i:j]
If i is omitted, default is 0. If j is omitted, default is len(string).
index of a char <string>.index <string>.indexOf
slice of a string <string>[0:3] <string>.slice(0, 3)
includes if <substring> in <string> '<string>'.includes('<substring>')
lowercase <string>.lower()
uppercase <string>.upper()
remove white space left: <string>.lstrip()
right: <string>.rstrip()
both:<string>.strip()
the number of times substring is present in the string <string>.count(<substring>)
only numeric characters, returns boolean <string>.isnumeric())
only alphabet characters, returns boolean <string>.isalpha())
split <string>.split(<delimiter>))
replace all occurrences
returns a new string
<string>.replace(<old>, <new>))
join a list of strings
returns a new string
<delimiter>.join(<list of strings>)

Sequences (Lists/Tuples | Arrays)

Python JavaScript
return the length of a sequence len(<list>) <array>.length
iterate over each element in the sequence for <element> in <sequence>
check if an element is in a sequence if <element> in <sequence>
access the element at index i
i starts at zero
<sequence>[i]
access the substring at index i ending at index j-1 <sequence>[i:j]
If i is omitted, default is 0. If j is omitted, default is len(string).
iterate over both the indexes and the elements for index, <element> in enumerate(<sequence>)
add an item <list>.append('item') <array>.push('item')
insert an item <list>.insert({index, 'item')
  • use list comprehension to create a list [<expression> for <variable> in <sequence> if <condition>] e.g.: [x for x in range(0, 101) if x % 3 == 0]

Lists || Array

Python JavaScript
return the length of a sequence len(<list>) <array>.length
replaces the element at index i with x <list>[i] <array>[i]
inserts x at the end of the list <list>.append(x) <array>.push(x)
inserts x at index i <list>.insert(i, x)
returns the element a index i, also removing it from the list <list>.pop(i)
removes the first occurrence of x <list>.remove(x)
sorts the items <list>.sort() .sort modifys the list, use sorted(<list>, <key>) to return a new list
reverses the order of items <list>.reverse()
removes all the items <list>.clear()
creates a copy of the list <list>.copy()
appends all the elements of other_list at the end of list <list>.extend(other_list)

Dictionaries | Objects

Python JavaScript
delete a property delattr(<obj>, <property>) and del <obj>.<property> delete <obj>.<property>
key names can be any immutable data type: numbers, booleans, stings, or tuples strings or symbols
iterates over each key in the dictionary for key in <dictionary>
iterates over each key,value pair in the dictionary for key, value in <dictionary>.items()
checks whether the key is in the dictionary if key in <dictionary>
accesses the item with key key of the dictionary <dictionary>[key]
sets the value associated with key <dictionary>[key] = value
returns the element corresponding to key, or default if it's not present <dictionary>.get(key, default)
returns a sequence containing the keys in the dictionary <dictionary>.keys()
returns a sequence containing the values in the dictionary <dictionary>.values()
updates the dictionary with the items coming from the other dictionary. Existing entries will be replaced; new entries will be added. <dictionary>.update(<other_dictionary>)
removes all the items of the dictionary <dictionary>.clear())

Classes

Python JavaScript
print properties and methods of a class dir(<type or class>)
print properties and methods of a class including arguments and function definitions help(<type or class>)
create a class without properties class <capitalized class name> pass
create a class with properties class <capitalized class name> color = ''
create a class with a method class <capitalized class name> def <function_name>(self):
constructor class <capitalized class name> def __init__(self, <additional params>):
create a print friendly message for an object class <capitalized class name> def __self__(self):
Docstring """a brief text in the first line of the function definition that explains what a function does wrapped in triple quotes"""
  • instance variables: Variables that have different values for different instances of the same class
  • if you try to print an object, it will print the location in the computer's memory
  • docstring is a brief text that explains what something does
  • always initialize mutable attributes in the constructor
Python JavaScript
import a module to use, e.g. random, datetime, timedelta... import <module>

Misc

Python JavaScript
comment out code # // or for long sections /* comment */
else if conditions elif else if
end param inside of print acts like a line break in a print statement NA
max recursive function calls the language allows 1000
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment